From fbc3f7b51fd325ddfc9dc13fdeb6db1645ec9452 Mon Sep 17 00:00:00 2001 From: sean-brydon <55134778+sean-brydon@users.noreply.github.com> Date: Sat, 13 Jan 2024 00:19:40 +1300 Subject: [PATCH] fix: correctly use eventTriggers parsed and use Array.from (#13193) Co-authored-by: Keith Williams --- apps/api/pages/api/webhooks/[id]/_patch.ts | 10 ++++++++-- apps/api/pages/api/webhooks/_post.ts | 10 ++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/apps/api/pages/api/webhooks/[id]/_patch.ts b/apps/api/pages/api/webhooks/[id]/_patch.ts index faba47d863..0a9b63f0de 100644 --- a/apps/api/pages/api/webhooks/[id]/_patch.ts +++ b/apps/api/pages/api/webhooks/[id]/_patch.ts @@ -69,7 +69,12 @@ import { schemaWebhookEditBodyParams, schemaWebhookReadPublic } from "~/lib/vali export async function patchHandler(req: NextApiRequest) { const { prisma, query, userId, isAdmin } = req; const { id } = schemaQueryIdAsString.parse(query); - const { eventTypeId, userId: bodyUserId, ...data } = schemaWebhookEditBodyParams.parse(req.body); + const { + eventTypeId, + userId: bodyUserId, + eventTriggers, + ...data + } = schemaWebhookEditBodyParams.parse(req.body); const args: Prisma.WebhookUpdateArgs = { where: { id }, data }; if (eventTypeId) { @@ -88,7 +93,8 @@ export async function patchHandler(req: NextApiRequest) { } if (args.data.eventTriggers) { - args.data.eventTriggers = [...new Set(args.data.eventTriggers)]; + const eventTriggersSet = new Set(eventTriggers); + args.data.eventTriggers = Array.from(eventTriggersSet); } const result = await prisma.webhook.update(args); diff --git a/apps/api/pages/api/webhooks/_post.ts b/apps/api/pages/api/webhooks/_post.ts index 9647a11738..e08d59d29d 100644 --- a/apps/api/pages/api/webhooks/_post.ts +++ b/apps/api/pages/api/webhooks/_post.ts @@ -66,7 +66,12 @@ import { schemaWebhookCreateBodyParams, schemaWebhookReadPublic } from "~/lib/va */ async function postHandler(req: NextApiRequest) { const { userId, isAdmin, prisma } = req; - const { eventTypeId, userId: bodyUserId, ...body } = schemaWebhookCreateBodyParams.parse(req.body); + const { + eventTypeId, + userId: bodyUserId, + eventTriggers, + ...body + } = schemaWebhookCreateBodyParams.parse(req.body); const args: Prisma.WebhookCreateArgs = { data: { id: uuidv4(), ...body } }; // If no event type, we assume is for the current user. If admin we run more checks below... @@ -88,7 +93,8 @@ async function postHandler(req: NextApiRequest) { } if (args.data.eventTriggers) { - args.data.eventTriggers = [...new Set(args.data.eventTriggers)]; + const eventTriggersSet = new Set(eventTriggers); + args.data.eventTriggers = Array.from(eventTriggersSet); } const data = await prisma.webhook.create(args);