From 36d315343c9a4654c4835234095104b2c875329e Mon Sep 17 00:00:00 2001 From: Manpreet Singh Date: Wed, 22 Nov 2023 11:54:18 -0800 Subject: [PATCH] fix: adds teamId to team events payload (#12417) --- packages/core/builders/CalendarEvent/class.ts | 2 +- .../bookings/lib/handleCancelBooking.ts | 20 ++++++++++++------- .../features/bookings/lib/handleNewBooking.ts | 2 +- packages/types/Calendar.d.ts | 1 + 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/packages/core/builders/CalendarEvent/class.ts b/packages/core/builders/CalendarEvent/class.ts index 2b33d7223db71c..8a449dbfd27ecb 100644 --- a/packages/core/builders/CalendarEvent/class.ts +++ b/packages/core/builders/CalendarEvent/class.ts @@ -17,7 +17,7 @@ class CalendarEventClass implements CalendarEvent { organizer!: Person; attendees!: Person[]; description?: string | null; - team?: { name: string; members: Person[] }; + team?: { name: string; members: Person[]; id: number }; location?: string | null; conferenceData?: ConferenceData; additionalInformation?: AdditionalInformation; diff --git a/packages/features/bookings/lib/handleCancelBooking.ts b/packages/features/bookings/lib/handleCancelBooking.ts index 7148be943f89a1..b71c9aa06d5e39 100644 --- a/packages/features/bookings/lib/handleCancelBooking.ts +++ b/packages/features/bookings/lib/handleCancelBooking.ts @@ -72,7 +72,12 @@ async function getBookingToDelete(id: number | undefined, uid: string | undefine hideBranding: true, }, }, - teamId: true, + team: { + select: { + id: true, + name: true, + }, + }, recurringEvent: true, title: true, eventName: true, @@ -151,11 +156,10 @@ async function handler(req: CustomRequest) { const teamId = await getTeamIdFromEventType({ eventType: { - team: { id: bookingToDelete.eventType?.teamId ?? null }, + team: { id: bookingToDelete.eventType?.team?.id ?? null }, parentId: bookingToDelete?.eventType?.parentId ?? null, }, }); - const triggerForUser = !teamId || (teamId && bookingToDelete.eventType?.parentId); const subscriberOptions = { @@ -255,7 +259,9 @@ async function handler(req: CustomRequest) { ? [bookingToDelete?.user.destinationCalendar] : [], cancellationReason: cancellationReason, - ...(teamMembers && { team: { name: "", members: teamMembers } }), + ...(teamMembers && { + team: { name: bookingToDelete?.eventType?.team?.name || "Nameless", members: teamMembers, id: teamId! }, + }), seatsPerTimeSlot: bookingToDelete.eventType?.seatsPerTimeSlot, seatsShowAttendees: bookingToDelete.eventType?.seatsShowAttendees, }; @@ -408,7 +414,7 @@ async function handler(req: CustomRequest) { if (bookingToDelete.location === DailyLocationType) { bookingToDelete.user.credentials.push({ ...FAKE_DAILY_CREDENTIAL, - teamId: bookingToDelete.eventType?.teamId || null, + teamId: bookingToDelete.eventType?.team?.id || null, }); } @@ -540,10 +546,10 @@ async function handler(req: CustomRequest) { let eventTypeOwnerId; if (bookingToDelete.eventType?.owner) { eventTypeOwnerId = bookingToDelete.eventType.owner.id; - } else if (bookingToDelete.eventType?.teamId) { + } else if (bookingToDelete.eventType?.team?.id) { const teamOwner = await prisma.membership.findFirst({ where: { - teamId: bookingToDelete.eventType.teamId, + teamId: bookingToDelete.eventType?.team.id, role: MembershipRole.OWNER, }, select: { diff --git a/packages/features/bookings/lib/handleNewBooking.ts b/packages/features/bookings/lib/handleNewBooking.ts index a21848ce2e6c05..dd00afc82cd9be 100644 --- a/packages/features/bookings/lib/handleNewBooking.ts +++ b/packages/features/bookings/lib/handleNewBooking.ts @@ -1079,7 +1079,6 @@ async function handler( }, }; }); - const teamMembers = await Promise.all(teamMemberPromises); const attendeesList = [...invitee, ...guests]; @@ -1887,6 +1886,7 @@ async function handler( evt.team = { members: teamMembers, name: eventType.team?.name || "Nameless", + id: eventType.team?.id ?? 0, }; } diff --git a/packages/types/Calendar.d.ts b/packages/types/Calendar.d.ts index b8e3989f71eaad..833855250cc175 100644 --- a/packages/types/Calendar.d.ts +++ b/packages/types/Calendar.d.ts @@ -160,6 +160,7 @@ export interface CalendarEvent { team?: { name: string; members: TeamMember[]; + id: number; }; location?: string | null; conferenceCredentialId?: number;