From aa2db562b83e0000d34527431440ba1efc2d84dd Mon Sep 17 00:00:00 2001 From: Keith Williams Date: Wed, 21 Feb 2024 20:05:53 -0300 Subject: [PATCH] fix: Bookings API (#13815) --- .../features/bookings/lib/handleNewBooking.ts | 40 +++++++++++++++++-- .../bookings/lib/handleNewRecurringBooking.ts | 2 +- 2 files changed, 37 insertions(+), 5 deletions(-) diff --git a/packages/features/bookings/lib/handleNewBooking.ts b/packages/features/bookings/lib/handleNewBooking.ts index 983e9291e0..81faa804c2 100644 --- a/packages/features/bookings/lib/handleNewBooking.ts +++ b/packages/features/bookings/lib/handleNewBooking.ts @@ -1289,7 +1289,7 @@ async function handler( } // Pushing fixed user before the luckyUser guarantees the (first) fixed user as the organizer. users = [...availableUsers.filter((user) => user.isFixed), ...luckyUsers]; - luckyUserResponse = { luckyUsers }; + luckyUserResponse = { luckyUsers: luckyUsers.map((u) => u.id) }; } else if (req.body.allRecurringDates && eventType.schedulingType === SchedulingType.ROUND_ROBIN) { // all recurring slots except the first one const luckyUsersFromFirstBooking = luckyUsers @@ -1576,7 +1576,18 @@ async function handler( }); if (newBooking) { req.statusCode = 201; - return { ...newBooking, ...luckyUserResponse }; + const bookingResponse = { + ...newBooking, + user: { + ...newBooking.user, + email: null, + }, + }; + + return { + ...bookingResponse, + ...luckyUserResponse, + }; } } if (isTeamEventType) { @@ -2170,8 +2181,18 @@ async function handler( }); req.statusCode = 201; - return { + // TODO: Refactor better so this booking object is not passed + // all around and instead the individual fields are sent as args. + const bookingReponse = { ...booking, + user: { + ...booking.user, + email: null, + }, + }; + + return { + ...bookingReponse, ...luckyUserResponse, message: "Payment required", paymentUid: payment?.uid, @@ -2299,8 +2320,19 @@ async function handler( // booking successful req.statusCode = 201; - return { + + // TODO: Refactor better so this booking object is not passed + // all around and instead the individual fields are sent as args. + const bookingResponse = { ...booking, + user: { + ...booking.user, + email: null, + }, + }; + + return { + ...bookingResponse, ...luckyUserResponse, references: referencesToCreate, seatReferenceUid: evt.attendeeSeatId, diff --git a/packages/features/bookings/lib/handleNewRecurringBooking.ts b/packages/features/bookings/lib/handleNewRecurringBooking.ts index 75de1e140c..9319abbd80 100644 --- a/packages/features/bookings/lib/handleNewRecurringBooking.ts +++ b/packages/features/bookings/lib/handleNewRecurringBooking.ts @@ -40,7 +40,7 @@ export const handleNewRecurringBooking = async ( }; const firstBookingResult = await handleNewBooking(recurringEventReq); - luckyUsers = firstBookingResult.luckyUsers?.map((user) => user.id); + luckyUsers = firstBookingResult.luckyUsers; } for (let key = isRoundRobin ? 1 : 0; key < data.length; key++) {