Skip to content

Commit ff8341b

Browse files
committed
make events respond in thread
1 parent fad641d commit ff8341b

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

commands/events.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Command } from "./mod.ts";
2-
import { AppMention, slack } from "../lib/slack.ts";
2+
import { AppMention, respondInThread, slack } from "../lib/slack.ts";
33
import {
44
convertEventsToDisplayString,
55
getEventsInTheNextWeek,
@@ -10,9 +10,9 @@ export const eventsCommand: Command<AppMention> = {
1010
handler: async (event) => {
1111
const events = await getEventsInTheNextWeek();
1212
const text = convertEventsToDisplayString(events);
13-
await slack.chat.postMessage({
14-
channel: event.channel,
15-
text: text,
13+
await respondInThread(event, text, {
14+
unfurl_links: false,
15+
unfurl_media: false,
1616
});
1717
},
1818
name: "events",

lib/slack.ts

+14-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
import { Static, Type } from "@sinclair/typebox";
2-
import { WebClient as SlackClient } from "npm:@slack/web-api";
2+
import {
3+
ChatPostMessageArguments,
4+
WebClient as SlackClient,
5+
} from "npm:@slack/web-api";
36
import { config } from "./config.ts";
47

58
export const slack = new SlackClient(config.SLACK_TOKEN);
@@ -39,12 +42,21 @@ interface EventWithTS {
3942
channel: string;
4043
}
4144

42-
export async function respondInThread(event: EventWithTS, text: string) {
45+
type ExtraPostMessageArgs = Omit<
46+
ChatPostMessageArguments,
47+
"channel" | "text" | "thread_ts" | "ts"
48+
>;
49+
export async function respondInThread(
50+
event: EventWithTS,
51+
text: string,
52+
extraArgs?: ExtraPostMessageArgs
53+
) {
4354
const thread_ts = event.thread_ts || event.ts;
4455
const response = await slack.chat.postMessage({
4556
channel: event.channel,
4657
text: text,
4758
thread_ts: thread_ts,
59+
...extraArgs,
4860
});
4961
return response;
5062
}

0 commit comments

Comments
 (0)