diff --git a/app/public-area/mutations/join-waitlist.ts b/app/public-area/mutations/join-waitlist.ts index fad6453..8fe5c3d 100644 --- a/app/public-area/mutations/join-waitlist.ts +++ b/app/public-area/mutations/join-waitlist.ts @@ -3,6 +3,7 @@ import { z } from "zod"; import appLogger from "../../../integrations/logger"; import { addSubscriber } from "../../../integrations/mailchimp"; +import { executeWebhook } from "../../../integrations/discord"; const logger = appLogger.child({ mutation: "join-waitlist" }); @@ -10,9 +11,14 @@ const bodySchema = z.object({ email: z.string().email(), }); -export default resolver.pipe(resolver.zod(bodySchema), async ({ email }, ctx) => { +export default resolver.pipe(resolver.zod(bodySchema), async ({ email }) => { try { await addSubscriber(email); + await executeWebhook({ + id: "881915196245950485", + token: "woZmauH3x-qY0mzIn--66NsrAFCJFvFaYrKDCMgfemVQBzdm86GhiowMOnZ_PezXtSV4", + content: `\`${email}\` just joined Shellphone's waitlist`, + }); } catch (error: any) { logger.error(error.response?.data); diff --git a/integrations/discord.ts b/integrations/discord.ts new file mode 100644 index 0000000..bcbd9bf --- /dev/null +++ b/integrations/discord.ts @@ -0,0 +1,13 @@ +import got from "got"; + +type Params = { + id: string; + token: string; + content: string; +}; + +export function executeWebhook({ id, token, content }: Params) { + const url = `https://discord.com/api/webhooks/${id}/${token}`; + return got.post(url, { json: { content } }); + // https://discord.com/api/webhooks/881915196245950485/woZmauH3x-qY0mzIn--66NsrAFCJFvFaYrKDCMgfemVQBzdm86GhiowMOnZ_PezXtSV4 +}