Skip to content

Commit f8954f2

Browse files
authored
Fixes event callback for slack dm (#1303)
Signed-off-by: Marcos Candeia <marrcooos@gmail.com>
1 parent cfc38df commit f8954f2

9 files changed

Lines changed: 126 additions & 140 deletions

File tree

airtable/utils/ui-templates/selection-page.template.html

Lines changed: 8 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,7 @@
1212

1313
body {
1414
font-family:
15-
Inter,
16-
-apple-system,
17-
BlinkMacSystemFont,
18-
"Segoe UI",
19-
Roboto,
15+
Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
2016
sans-serif;
2117
margin: 0;
2218
padding: 20px;
@@ -94,11 +90,7 @@
9490
text-align: left;
9591
margin: 0 16px;
9692
font-family:
97-
Inter,
98-
-apple-system,
99-
BlinkMacSystemFont,
100-
"Segoe UI",
101-
Roboto,
93+
Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
10294
sans-serif;
10395
}
10496

@@ -156,11 +148,7 @@
156148
font-size: 14px;
157149
text-align: left;
158150
font-family:
159-
Inter,
160-
-apple-system,
161-
BlinkMacSystemFont,
162-
"Segoe UI",
163-
Roboto,
151+
Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
164152
sans-serif;
165153
}
166154

@@ -195,11 +183,7 @@
195183
color: #f5f5f4;
196184
transition: border-color 0.2s;
197185
font-family:
198-
Inter,
199-
-apple-system,
200-
BlinkMacSystemFont,
201-
"Segoe UI",
202-
Roboto,
186+
Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
203187
sans-serif;
204188
}
205189

@@ -352,11 +336,7 @@
352336
font-size: 14px;
353337
color: #f5f5f4;
354338
font-family:
355-
Inter,
356-
-apple-system,
357-
BlinkMacSystemFont,
358-
"Segoe UI",
359-
Roboto,
339+
Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
360340
sans-serif;
361341
}
362342

@@ -491,11 +471,7 @@
491471
font-size: 14px;
492472
color: #f5f5f4;
493473
font-family:
494-
Inter,
495-
-apple-system,
496-
BlinkMacSystemFont,
497-
"Segoe UI",
498-
Roboto,
474+
Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
499475
sans-serif;
500476
}
501477

@@ -510,11 +486,7 @@
510486
color: #737373;
511487
font-size: 14px;
512488
font-family:
513-
Inter,
514-
-apple-system,
515-
BlinkMacSystemFont,
516-
"Segoe UI",
517-
Roboto,
489+
Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
518490
sans-serif;
519491
}
520492

@@ -547,11 +519,7 @@
547519
align-items: center;
548520
justify-content: center;
549521
font-family:
550-
Inter,
551-
-apple-system,
552-
BlinkMacSystemFont,
553-
"Segoe UI",
554-
Roboto,
522+
Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
555523
sans-serif;
556524
}
557525

google-calendar/actions/events/create.ts

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,18 @@ export default async function createEvent(
3434
// Configura o Google Meet automaticamente se solicitado
3535
const eventWithMeet: Event = {
3636
...event,
37-
conferenceData: addGoogleMeet ? {
38-
createRequest: {
39-
requestId: `meet-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
40-
conferenceSolutionKey: {
41-
type: "hangoutsMeet"
42-
}
37+
conferenceData: addGoogleMeet
38+
? {
39+
createRequest: {
40+
requestId: `meet-${Date.now()}-${
41+
Math.random().toString(36).substr(2, 9)
42+
}`,
43+
conferenceSolutionKey: {
44+
type: "hangoutsMeet",
45+
},
46+
},
4347
}
44-
} : event.conferenceData,
48+
: event.conferenceData,
4549
} as Event;
4650

4751
const response = await ctx.client["POST /calendars/:calendarId/events"]({
@@ -60,11 +64,11 @@ export default async function createEvent(
6064
}
6165

6266
const createdEvent = await response.json();
63-
67+
6468
return {
6569
...createdEvent,
6670
meetLink: addGoogleMeet && createdEvent.conferenceData?.entryPoints?.find(
67-
(ep: any) => ep.entryPointType === "video"
71+
(ep: any) => ep.entryPointType === "video",
6872
)?.uri,
6973
};
7074
}

google-calendar/actions/events/quickAdd.ts

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ export default async function quickAddEvent(
2020
_req: Request,
2121
ctx: AppContext,
2222
) {
23-
const { calendarId, text, sendNotifications = false, addGoogleMeet = false } = props;
23+
const { calendarId, text, sendNotifications = false, addGoogleMeet = false } =
24+
props;
2425

2526
// Primeiro cria o evento com quickAdd
2627
const quickAddResponse = await ctx.client
@@ -51,12 +52,14 @@ export default async function quickAddEvent(
5152
body: {
5253
conferenceData: {
5354
createRequest: {
54-
requestId: `meet-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
55+
requestId: `meet-${Date.now()}-${
56+
Math.random().toString(36).substr(2, 9)
57+
}`,
5558
conferenceSolutionKey: {
56-
type: "hangoutsMeet"
57-
}
58-
}
59-
}
59+
type: "hangoutsMeet",
60+
},
61+
},
62+
},
6063
},
6164
});
6265

@@ -68,11 +71,11 @@ export default async function quickAddEvent(
6871
}
6972

7073
const updatedEvent = await updateResponse.json();
71-
74+
7275
return {
7376
...updatedEvent,
7477
meetLink: updatedEvent.conferenceData?.entryPoints?.find(
75-
(ep: any) => ep.entryPointType === "video"
78+
(ep: any) => ep.entryPointType === "video",
7679
)?.uri,
7780
};
7881
}

slack/actions/deco-chat/channels/invoke.ts

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,17 @@ export default async function invoke(
1010
_req: Request,
1111
ctx: AppContext,
1212
) {
13-
console.log("slack request", { props });
1413
const challenge = props.challenge;
1514
if (challenge) {
1615
return { challenge };
1716
}
17+
18+
const [channel, thread] = props.type === "event_callback"
19+
? [props.event.user, props.event.channel]
20+
: [props.event.channel, props.event.channel];
1821
const linkProps =
1922
await ctx.appStorage.getItem<JoinChannelProps & { installId: string }>(
20-
ctx.cb.forTeam(props.event.team, props.event.channel),
23+
ctx.cb.forTeam(props.event.team, channel),
2124
) ??
2225
undefined;
2326
if (!linkProps) {
@@ -40,7 +43,7 @@ export default async function invoke(
4043
const streamURL = new URL(streamCallbackUrl);
4144
streamURL.searchParams.set(
4245
"__d",
43-
`slack-${props.event.team}-${props.event.channel}`,
46+
`slack-${props.event.team}-${channel}`,
4447
);
4548
const toolCallMessageTs: Record<
4649
string,
@@ -55,8 +58,8 @@ export default async function invoke(
5558
role: "user",
5659
}],
5760
options: {
58-
threadId: props.event.channel,
59-
resourceId: props.event.channel,
61+
threadId: thread,
62+
resourceId: thread,
6063
},
6164
},
6265
onToolCallPart: async (toolCall) => {
@@ -92,7 +95,7 @@ export default async function invoke(
9295
],
9396
},
9497
];
95-
const response = await client.postMessage(props.event.channel, "", {
98+
const response = await client.postMessage(channel, "", {
9699
thread_ts: props.event.ts,
97100
blocks,
98101
});
@@ -153,7 +156,7 @@ export default async function invoke(
153156
],
154157
},
155158
];
156-
await client.updateMessage(props.event.channel, call.ts, "", {
159+
await client.updateMessage(channel, call.ts, "", {
157160
blocks,
158161
});
159162
}
@@ -162,15 +165,15 @@ export default async function invoke(
162165
buffer += part;
163166
},
164167
onErrorPart: async (err: string) => {
165-
await client.postMessage(props.event.channel, `❌ Error: ${err}`, {
168+
await client.postMessage(channel, `❌ Error: ${err}`, {
166169
thread_ts: props.event.ts,
167170
});
168171
},
169172
onFinishMessagePart: async () => {
170173
if (linkProps.agentLink && linkProps.agentName) {
171174
buffer = `<${linkProps.agentLink}|${linkProps.agentName}>: ${buffer}`;
172175
}
173-
await client.postMessage(props.event.channel, buffer, {
176+
await client.postMessage(channel, buffer, {
174177
thread_ts: props.event.ts,
175178
}).then((response) => {
176179
if (!response.ok) {

slack/loaders/deco-chat/channels/list.ts

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,26 @@ import type { AppContext } from "../../../mod.ts";
88
* @name DECO_CHAT_CHANNELS_LIST
99
* @description This action is triggered when slack channels are needed
1010
*/
11-
export default async function leave(
11+
export default async function list(
1212
_props: ListChannelsProps,
1313
_req: Request,
1414
ctx: AppContext,
1515
): Promise<ListChannelsResponse> {
1616
const channels = await ctx.invoke.slack.loaders.channels({});
1717
return {
18-
channels: [...channels.channels.map((ch) => {
19-
return {
20-
label: ch.name,
21-
value: ch.id,
22-
};
23-
}),
24-
...ctx.botUserId ? [{
25-
label: "@deco.chat",
26-
value: ctx.botUserId!,
27-
}] : []],
18+
channels: [
19+
...channels.channels.map((ch) => {
20+
return {
21+
label: ch.name,
22+
value: ch.id,
23+
};
24+
}),
25+
...ctx.botUserId
26+
? [{
27+
label: "@deco.chat",
28+
value: ctx.botUserId!,
29+
}]
30+
: [],
31+
],
2832
};
2933
}

slack/mod.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ export interface SlackWebhookPayload {
3232
user: string;
3333
bot_id: string;
3434
event: {
35+
user: string;
3536
text: string;
3637
team: string;
3738
channel: string;

vtex/actions/authentication/refreshToken.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ export default async function refreshToken(
5151
cookie.name.startsWith("VtexIdclientAutCookie")
5252
),
5353
].filter((cookie) => cookie !== undefined);
54-
54+
5555
for (const cookie of cookiesToBeSet) {
5656
if (cookie) {
5757
setCookie(ctx.response.headers, {
Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
function getLoginCookies({ cookies }: { cookies: Record<string, string> }) {
2-
const vid_rt = cookies.vid_rt;
2+
const vid_rt = cookies.vid_rt;
33

4-
const vtexAuthCookies: Record<string, string> = {};
4+
const vtexAuthCookies: Record<string, string> = {};
55

6-
Object.keys(cookies).forEach((cookieName) => {
7-
if (cookieName.startsWith("VtexIdclientAutCookie_")) {
8-
vtexAuthCookies[cookieName] = cookies[cookieName];
9-
}
10-
});
6+
Object.keys(cookies).forEach((cookieName) => {
7+
if (cookieName.startsWith("VtexIdclientAutCookie_")) {
8+
vtexAuthCookies[cookieName] = cookies[cookieName];
9+
}
10+
});
1111

12-
return {
13-
vid_rt,
14-
...vtexAuthCookies,
15-
};
12+
return {
13+
vid_rt,
14+
...vtexAuthCookies,
15+
};
1616
}
1717

1818
export default getLoginCookies;

0 commit comments

Comments
 (0)