From 294c5d949be1a05eb6c7fc8be93d6a1ef03774d8 Mon Sep 17 00:00:00 2001 From: Udit Takkar Date: Wed, 20 Dec 2023 17:56:45 +0530 Subject: [PATCH 1/2] fix: only use event type's webhooks --- .../instant-meeting/handleInstantMeeting.ts | 37 +++++++++++++------ 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/packages/features/instant-meeting/handleInstantMeeting.ts b/packages/features/instant-meeting/handleInstantMeeting.ts index 62c482b0d8dfd5..d06418c206d77d 100644 --- a/packages/features/instant-meeting/handleInstantMeeting.ts +++ b/packages/features/instant-meeting/handleInstantMeeting.ts @@ -13,8 +13,6 @@ import { getCustomInputsResponses, } from "@calcom/features/bookings/lib/handleNewBooking"; import { getFullName } from "@calcom/features/form-builder/utils"; -import type { GetSubscriberOptions } from "@calcom/features/webhooks/lib/getWebhooks"; -import getWebhooks from "@calcom/features/webhooks/lib/getWebhooks"; import { sendGenericWebhookPayload } from "@calcom/features/webhooks/lib/sendPayload"; import { isPrismaObjOrUndefined } from "@calcom/lib"; import { WEBAPP_URL } from "@calcom/lib/constants"; @@ -24,12 +22,35 @@ import prisma from "@calcom/prisma"; import { BookingStatus, WebhookTriggerEvents } from "@calcom/prisma/enums"; const handleInstantMeetingWebhookTrigger = async (args: { - subscriberOptions: GetSubscriberOptions; + eventTypeId: number; webhookData: Record; }) => { try { const eventTrigger = WebhookTriggerEvents.INSTANT_MEETING; - const subscribers = await getWebhooks(args.subscriberOptions); + + const subscribers = await prisma.webhook.findMany({ + where: { + AND: { + eventTypeId: { + equals: args.eventTypeId, + }, + eventTriggers: { + has: eventTrigger, + }, + active: { + equals: true, + }, + }, + }, + select: { + id: true, + subscriberUrl: true, + payloadTemplate: true, + appId: true, + secret: true, + }, + }); + const { webhookData } = args; const promises = subscribers.map((sub) => { @@ -178,12 +199,6 @@ async function handler(req: NextApiRequest) { }); // Trigger Webhook - const subscriberOptions: GetSubscriberOptions = { - userId: null, - eventTypeId: eventType.id, - triggerEvent: WebhookTriggerEvents.INSTANT_MEETING, - teamId: eventType.team.id, - }; const webhookData = { triggerEvent: WebhookTriggerEvents.INSTANT_MEETING, @@ -196,7 +211,7 @@ async function handler(req: NextApiRequest) { }; await handleInstantMeetingWebhookTrigger({ - subscriberOptions, + eventTypeId: eventType.id, webhookData, }); From 2e24813a37c96f534454a9c1623bdc8d64acd5c0 Mon Sep 17 00:00:00 2001 From: Udit Takkar Date: Wed, 20 Dec 2023 18:16:50 +0530 Subject: [PATCH 2/2] chore: improve code --- packages/features/instant-meeting/handleInstantMeeting.ts | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/packages/features/instant-meeting/handleInstantMeeting.ts b/packages/features/instant-meeting/handleInstantMeeting.ts index d06418c206d77d..f73b918dc8411b 100644 --- a/packages/features/instant-meeting/handleInstantMeeting.ts +++ b/packages/features/instant-meeting/handleInstantMeeting.ts @@ -31,15 +31,11 @@ const handleInstantMeetingWebhookTrigger = async (args: { const subscribers = await prisma.webhook.findMany({ where: { AND: { - eventTypeId: { - equals: args.eventTypeId, - }, + eventTypeId: args.eventTypeId, eventTriggers: { has: eventTrigger, }, - active: { - equals: true, - }, + active: true, }, }, select: {