From 61c60fc3191c551b6c07b36351de5f9445765705 Mon Sep 17 00:00:00 2001 From: sean-brydon <55134778+sean-brydon@users.noreply.github.com> Date: Sun, 10 Apr 2022 18:19:45 +0100 Subject: [PATCH] Add response events (#2456) Co-authored-by: Peer Richelsen --- .../slackmessaging/lib/actions/createEvent.ts | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/packages/app-store/slackmessaging/lib/actions/createEvent.ts b/packages/app-store/slackmessaging/lib/actions/createEvent.ts index 6916c3e2cd..3530e73686 100644 --- a/packages/app-store/slackmessaging/lib/actions/createEvent.ts +++ b/packages/app-store/slackmessaging/lib/actions/createEvent.ts @@ -116,7 +116,7 @@ export default async function createEvent(req: NextApiRequest, res: NextApiRespo email: foundUser?.email ?? "", name: foundUser?.username ?? "", guests: await Promise.all(invitedGuestsEmails), - location: "inPerson", // TODO: Make this pickable in the future - defaulting to in person as any video provider that does not exist within the monorepo will crash the app. + location: "integrations:daily", // Defaulting to daily video to make this a bit more usefull than in-person timeZone: foundUser?.timeZone ?? "", language: foundUser?.locale ?? "en", customInputs: [{ label: "", value: "" }], @@ -124,6 +124,15 @@ export default async function createEvent(req: NextApiRequest, res: NextApiRespo notes: "This event was created with slack.", }; + if (startDate < dayjs()) { + client.chat.postMessage({ + token: access_token, + channel: user.id, + text: `Error: Day must not be in the past`, + }); + return res.status(200).send(""); + } + fetch(`${WEBAPP_URL}/api/book/event`, { method: "POST", body: JSON.stringify(PostData), @@ -132,11 +141,19 @@ export default async function createEvent(req: NextApiRequest, res: NextApiRespo }, }) .then(() => { + client.chat.postMessage({ + token: access_token, + channel: user.id, // We just dm the user here as there is no point posting this message publicly - In future it might be worth pinging all the members of the invite also? + text: "Booking has been created.", + }); return res.status(200).send(""); // Slack requires a 200 to be sent to clear the modal. This makes it massive pain to update the user that the event has been created. }) - .catch(() => { - return res - .status(200) - .json({ text: "Event creation failed. Please try again", response_action: "update" }); + .catch((e) => { + client.chat.postMessage({ + token: access_token, + channel: user.id, + text: `Error: ${e}`, + }); + return res.status(200).send(""); }); }