From aaa39cccf83d9d6b2bc74269cc9178dad96501b3 Mon Sep 17 00:00:00 2001 From: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com> Date: Tue, 1 Apr 2025 18:38:14 +0530 Subject: [PATCH] chore: update status code (#20443) * chore: update status code * chore: update status code * fix: error unhandled --- .../features/bookings/lib/handleNewBooking.ts | 2 +- .../originalRescheduledBookingUtils.ts | 24 +++++++------------ .../lib/server/getServerErrorFromUnknown.ts | 2 +- 3 files changed, 10 insertions(+), 18 deletions(-) diff --git a/packages/features/bookings/lib/handleNewBooking.ts b/packages/features/bookings/lib/handleNewBooking.ts index 1eb57953b9..a5084f426f 100644 --- a/packages/features/bookings/lib/handleNewBooking.ts +++ b/packages/features/bookings/lib/handleNewBooking.ts @@ -570,7 +570,7 @@ async function handler( dateFrom: dayjs(start).tz(reqBody.timeZone).format(), dateTo: dayjs(end).tz(reqBody.timeZone).format(), timeZone: reqBody.timeZone, - originalRescheduledBooking, + originalRescheduledBooking: originalRescheduledBooking ?? null, }, loggerWithEventDetails, shouldServeCache diff --git a/packages/features/bookings/lib/handleNewBooking/originalRescheduledBookingUtils.ts b/packages/features/bookings/lib/handleNewBooking/originalRescheduledBookingUtils.ts index ea4f9667f8..39256263d7 100644 --- a/packages/features/bookings/lib/handleNewBooking/originalRescheduledBookingUtils.ts +++ b/packages/features/bookings/lib/handleNewBooking/originalRescheduledBookingUtils.ts @@ -5,28 +5,20 @@ import { HttpError } from "@calcom/lib/http-error"; import { BookingRepository } from "@calcom/lib/server/repository/booking"; import { BookingStatus } from "@calcom/prisma/enums"; -export const validateOriginalRescheduledBooking = async ( - originalRescheduledBooking: OriginalRescheduledBooking -) => { - if (!originalRescheduledBooking) { +export async function getOriginalRescheduledBooking(uid: string, seatsEventType?: boolean) { + const originalBooking = await BookingRepository.findOriginalRescheduledBooking(uid, seatsEventType); + + if (!originalBooking) { throw new HttpError({ statusCode: 404, message: "Could not find original booking" }); } - if ( - originalRescheduledBooking.status === BookingStatus.CANCELLED && - !originalRescheduledBooking.rescheduled - ) { - throw new HttpError({ statusCode: 403, message: ErrorCode.CancelledBookingsCannotBeRescheduled }); + if (originalBooking.status === BookingStatus.CANCELLED && !originalBooking.rescheduled) { + throw new HttpError({ statusCode: 400, message: ErrorCode.CancelledBookingsCannotBeRescheduled }); } -}; - -export async function getOriginalRescheduledBooking(uid: string, seatsEventType?: boolean) { - const originalBooking = await BookingRepository.findOriginalRescheduledBooking(uid, seatsEventType); - validateOriginalRescheduledBooking(originalBooking); return originalBooking; } -export type BookingType = Prisma.PromiseReturnType; +export type BookingType = Prisma.PromiseReturnType | null; -export type OriginalRescheduledBooking = Awaited>; +export type OriginalRescheduledBooking = Awaited> | null; diff --git a/packages/lib/server/getServerErrorFromUnknown.ts b/packages/lib/server/getServerErrorFromUnknown.ts index 23ee3b333f..d33138c932 100644 --- a/packages/lib/server/getServerErrorFromUnknown.ts +++ b/packages/lib/server/getServerErrorFromUnknown.ts @@ -95,7 +95,7 @@ function getStatusCode(cause: Error): number { case ErrorCode.AvailabilityNotFoundInSchedule: return 400; case ErrorCode.CancelledBookingsCannotBeRescheduled: - return 403; + return 400; case ErrorCode.NoAvailableUsersFound: case ErrorCode.HostsUnavailableForBooking: case ErrorCode.PaymentCreationFailure: