From 558c8be740003735217efed19bd68c4c04243d90 Mon Sep 17 00:00:00 2001 From: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com> Date: Fri, 27 Dec 2024 16:39:49 +0530 Subject: [PATCH] perf: getAvailableSlots improvements (#18382) --- .../filterHostsByLeadThreshold.test.ts | 6 ++-- packages/lib/server/repository/booking.ts | 6 ++-- .../trpc/server/routers/viewer/slots/util.ts | 28 ++++++++----------- 3 files changed, 16 insertions(+), 24 deletions(-) diff --git a/packages/lib/bookings/filterHostsByLeadThreshold.test.ts b/packages/lib/bookings/filterHostsByLeadThreshold.test.ts index eae55c09a4..f8ca3ceac2 100644 --- a/packages/lib/bookings/filterHostsByLeadThreshold.test.ts +++ b/packages/lib/bookings/filterHostsByLeadThreshold.test.ts @@ -114,10 +114,8 @@ describe("filterHostByLeadThreshold", () => { where: { OR: [ { - user: { - id: { - in: [2], - }, + userId: { + in: [2], }, OR: [ { diff --git a/packages/lib/server/repository/booking.ts b/packages/lib/server/repository/booking.ts index 89bd95fdce..941c2c5abe 100644 --- a/packages/lib/server/repository/booking.ts +++ b/packages/lib/server/repository/booking.ts @@ -44,10 +44,8 @@ const buildWhereClauseForActiveBookings = ({ }): Prisma.BookingWhereInput => ({ OR: [ { - user: { - id: { - in: users.map((user) => user.id), - }, + userId: { + in: users.map((user) => user.id), }, OR: [ { diff --git a/packages/trpc/server/routers/viewer/slots/util.ts b/packages/trpc/server/routers/viewer/slots/util.ts index 0584e66f1a..d9dfff3a5a 100644 --- a/packages/trpc/server/routers/viewer/slots/util.ts +++ b/packages/trpc/server/routers/viewer/slots/util.ts @@ -986,22 +986,18 @@ const calculateHostsAndAvailabilities = async ({ }; const allUserIds = usersWithCredentials.map((user) => user.id); - const currentBookingsAllUsers = await monitorCallbackAsync( - getExistingBookings, - startTimeDate, - endTimeDate, - eventType, - sharedQuery, - usersWithCredentials, - allUserIds - ); - - const outOfOfficeDaysAllUsers = await monitorCallbackAsync( - getOOODates, - startTimeDate, - endTimeDate, - allUserIds - ); + const [currentBookingsAllUsers, outOfOfficeDaysAllUsers] = await Promise.all([ + monitorCallbackAsync( + getExistingBookings, + startTimeDate, + endTimeDate, + eventType, + sharedQuery, + usersWithCredentials, + allUserIds + ), + monitorCallbackAsync(getOOODates, startTimeDate, endTimeDate, allUserIds), + ]); const bookingLimits = parseBookingLimit(eventType?.bookingLimits); const durationLimits = parseDurationLimit(eventType?.durationLimits);