mirror of
https://github.com/hanzoai/calendar.git
synced 2026-10-30 14:46:43 +00:00
* add eslint config * migrate autoLock to features * migrate teamService to features * migrate userCreationService * migrate insights services to features * migrate ProfileRepository * update imports * migrate filter segmen tests * migrate filter segment repository * migrate getBusyTimes * migrate getLocaleFromRequest * refactor csvUtils * make filename clearer * migrate getLuckyUser integration test * migrate autoLock test to features * wip * refactors * migrate useBookerUrl * migrate more * wip * Migrate eventTypeRepository * membership repository * update imports * update imports * migrate * move organization repository * update imports * update imports * wip * wip * wip * wip * wip * wip * wip * wip * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix tests * fix type checks * fix * fix * migrate * update imports * fix tests * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix
27 lines
1.1 KiB
TypeScript
27 lines
1.1 KiB
TypeScript
import { ErrorCode } from "@calcom/lib/errorCodes";
|
|
import { HttpError } from "@calcom/lib/http-error";
|
|
import { BookingRepository } from "@calcom/features/bookings/repositories/BookingRepository";
|
|
import type { Prisma } from "@calcom/prisma/client";
|
|
import { BookingStatus } from "@calcom/prisma/enums";
|
|
import prisma from "@calcom/prisma";
|
|
|
|
// TODO: Inject.
|
|
export async function getOriginalRescheduledBooking(uid: string, seatsEventType?: boolean) {
|
|
const bookingRepo = new BookingRepository(prisma);
|
|
const originalBooking = await bookingRepo.findOriginalRescheduledBooking(uid, seatsEventType);
|
|
|
|
if (!originalBooking) {
|
|
throw new HttpError({ statusCode: 404, message: "Could not find original booking" });
|
|
}
|
|
|
|
if (originalBooking.status === BookingStatus.CANCELLED && !originalBooking.rescheduled) {
|
|
throw new HttpError({ statusCode: 400, message: ErrorCode.CancelledBookingsCannotBeRescheduled });
|
|
}
|
|
|
|
return originalBooking;
|
|
}
|
|
|
|
export type BookingType = Prisma.PromiseReturnType<typeof getOriginalRescheduledBooking> | null;
|
|
|
|
export type OriginalRescheduledBooking = Awaited<ReturnType<typeof getOriginalRescheduledBooking>> | null;
|