Files
cal.diy/packages/features/bookings/lib/di/modules/RegularBookingServiceModule.ts
T

40 lines
1.9 KiB
TypeScript

import type { Container } from "@evyweb/ioctopus";
import { createModule } from "@evyweb/ioctopus";
import { bookingRepositoryModule } from "@calcom/lib/di/modules/Booking";
import { cacheModule } from "@calcom/lib/di/modules/Cache";
import { checkBookingAndDurationLimitsModule } from "@calcom/lib/di/modules/CheckBookingAndDurationLimits";
import { checkBookingLimitsModule } from "@calcom/lib/di/modules/CheckBookingLimits";
import { featuresRepositoryModule } from "@calcom/lib/di/modules/Features";
import { DI_TOKENS } from "@calcom/lib/di/tokens";
import { prismaModule } from "@calcom/prisma/prisma.module";
import { RegularBookingService } from "../../handleNewBooking";
export const regularBookingServiceModule = createModule();
const moduleToken = DI_TOKENS.REGULAR_BOOKING_SERVICE;
regularBookingServiceModule.bind(moduleToken).toClass(RegularBookingService, {
cacheService: DI_TOKENS.CACHE_SERVICE,
checkBookingAndDurationLimitsService: DI_TOKENS.CHECK_BOOKING_AND_DURATION_LIMITS_SERVICE,
prismaClient: DI_TOKENS.PRISMA_CLIENT,
bookingRepository: DI_TOKENS.BOOKING_REPOSITORY,
featuresRepository: DI_TOKENS.FEATURES_REPOSITORY,
checkBookingLimitsService: DI_TOKENS.CHECK_BOOKING_LIMITS_SERVICE,
});
// Load the dependencies defined for the module above
function loadModuleDeps(container: Container) {
container.load(DI_TOKENS.CACHE_SERVICE_MODULE, cacheModule);
container.load(
DI_TOKENS.CHECK_BOOKING_AND_DURATION_LIMITS_SERVICE_MODULE,
checkBookingAndDurationLimitsModule
);
container.load(DI_TOKENS.PRISMA_MODULE, prismaModule);
container.load(DI_TOKENS.BOOKING_REPOSITORY_MODULE, bookingRepositoryModule);
container.load(DI_TOKENS.FEATURES_REPOSITORY_MODULE, featuresRepositoryModule);
container.load(DI_TOKENS.CHECK_BOOKING_LIMITS_SERVICE_MODULE, checkBookingLimitsModule);
}
export { loadModuleDeps, moduleToken };
export type { RegularBookingService };