From 5df14c344e863389727cec0e636eb4741b1c80f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Omar=20L=C3=B3pez?= Date: Thu, 15 Aug 2024 13:03:07 -0700 Subject: [PATCH] refactor: use WebhookService in payments router (#16108) --- .../trpc/server/routers/viewer/payments.tsx | 32 +++++++------------ 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/packages/trpc/server/routers/viewer/payments.tsx b/packages/trpc/server/routers/viewer/payments.tsx index cd39e0a056..eacb4535f0 100644 --- a/packages/trpc/server/routers/viewer/payments.tsx +++ b/packages/trpc/server/routers/viewer/payments.tsx @@ -3,10 +3,9 @@ import { z } from "zod"; import appStore from "@calcom/app-store"; import dayjs from "@calcom/dayjs"; import { sendNoShowFeeChargedEmail } from "@calcom/emails"; -import getWebhooks from "@calcom/features/webhooks/lib/getWebhooks"; +import { WebhookService } from "@calcom/features/webhooks/lib/WebhookService"; import getOrgIdFromMemberOrTeamId from "@calcom/lib/getOrgIdFromMemberOrTeamId"; import { getTranslation } from "@calcom/lib/server/i18n"; -import sendPayload from "@calcom/lib/server/webhooks/sendPayload"; import { WebhookTriggerEvents } from "@calcom/prisma/enums"; import type { EventTypeMetadata } from "@calcom/prisma/zod-utils"; import type { CalendarEvent } from "@calcom/types/Calendar"; @@ -128,27 +127,20 @@ export const paymentsRouter = router({ const userId = ctx.user.id || 0; const orgId = await getOrgIdFromMemberOrTeamId({ memberId: userId }); - - const subscriberOptions = { + const eventTypeId = booking.eventTypeId || 0; + const webhooks = await new WebhookService({ userId, - eventTypeId: booking.eventTypeId || 0, + eventTypeId, triggerEvent: WebhookTriggerEvents.BOOKING_PAID, orgId, - }; - - const subscribers = await getWebhooks(subscriberOptions); - - await Promise.all( - subscribers.map(async (subscriber) => { - sendPayload(subscriber.secret, WebhookTriggerEvents.BOOKING_PAID, { - ...evt, - bookingId: booking.id, - paymentId: payment.id, - paymentData, - eventTypeId: subscriberOptions.eventTypeId, - }); - }) - ); + }); + await webhooks.sendPayload({ + ...evt, + bookingId: booking.id, + paymentId: payment.id, + paymentData, + eventTypeId, + }); await sendNoShowFeeChargedEmail( attendeesListPromises[0],