Files
calendar/packages/features/bookings/lib/requiresConfirmation/getBookingRequest.ts
T
Joe Au-YeungandGitHub 6fffe3377d refactor: Replace attendee email with user id in idempotency key (#21058)
* Use userId instead of attendee email

* Only write if booking is accepted

* Create `getBookingRequest` function

* Return already requested booking

* Type fixes

* Type fix

* Type fix

* Pass empty seatReferenceId

* Handle no userId

* Update test
2025-05-02 00:46:19 +01:00

36 lines
750 B
TypeScript

import prisma from "@calcom/prisma";
import { BookingStatus } from "@calcom/prisma/enums";
export const getBookingRequest = async ({
bookerEmail,
bookerPhoneNumber,
startTime,
eventTypeId,
}: {
bookerEmail: string;
bookerPhoneNumber: string | undefined;
startTime: Date;
eventTypeId: number;
}) => {
// See if there's already an existing request
const booking = await prisma.booking.findFirst({
where: {
eventTypeId,
startTime,
attendees: {
some: {
email: bookerEmail,
phoneNumber: bookerPhoneNumber,
},
},
status: BookingStatus.PENDING,
},
include: {
attendees: true,
references: true,
user: true,
},
});
return booking;
};