40 lines
1.9 KiB
TypeScript
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 };
|