* chore: Move post booking stuff to separate service * refactor: improve ISP compliance in BookingEventHandlerService - Refactor updatePrivateLinkUsage to only accept hashedLink parameter instead of full payload - Remove shouldProcess function and inline isDryRun check for better clarity - Addresses feedback from PR #24025 Co-Authored-By: hariom@cal.com <hariombalhara@gmail.com> * define only what is used * Define hashed-link-service as well in api-v2 * fix: export HashedLinkService through platform-libraries - Add HashedLinkService to platform-libraries/private-links.ts - Update API V2 to import from platform library instead of direct path - Fixes MODULE_NOT_FOUND error in API V2 build Co-Authored-By: hariom@cal.com <hariombalhara@gmail.com> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
38 lines
1.8 KiB
TypeScript
38 lines
1.8 KiB
TypeScript
import { RegularBookingService } from "@calcom/features/bookings/lib/service/RegularBookingService";
|
|
import { bindModuleToClassOnToken, createModule } from "@calcom/features/di/di";
|
|
import { moduleLoader as bookingRepositoryModuleLoader } from "@calcom/features/di/modules/Booking";
|
|
import { moduleLoader as cacheModuleLoader } from "@calcom/features/di/modules/Cache";
|
|
import { moduleLoader as checkBookingAndDurationLimitsModuleLoader } from "@calcom/features/di/modules/CheckBookingAndDurationLimits";
|
|
import { moduleLoader as luckyUserServiceModuleLoader } from "@calcom/features/di/modules/LuckyUser";
|
|
import { moduleLoader as userRepositoryModuleLoader } from "@calcom/features/di/modules/User";
|
|
import { DI_TOKENS } from "@calcom/features/di/tokens";
|
|
import { moduleLoader as hashedLinkServiceModuleLoader } from "@calcom/features/hashedLink/di/HashedLinkService.module";
|
|
import { moduleLoader as prismaModuleLoader } from "@calcom/prisma/prisma.module";
|
|
|
|
const thisModule = createModule();
|
|
const token = DI_TOKENS.REGULAR_BOOKING_SERVICE;
|
|
const moduleToken = DI_TOKENS.REGULAR_BOOKING_SERVICE_MODULE;
|
|
const loadModule = bindModuleToClassOnToken({
|
|
module: thisModule,
|
|
moduleToken,
|
|
token,
|
|
classs: RegularBookingService,
|
|
depsMap: {
|
|
// TODO: In a followup PR, we aim to remove prisma dependency and instead inject the repositories as dependencies.
|
|
prismaClient: prismaModuleLoader,
|
|
cacheService: cacheModuleLoader,
|
|
checkBookingAndDurationLimitsService: checkBookingAndDurationLimitsModuleLoader,
|
|
bookingRepository: bookingRepositoryModuleLoader,
|
|
luckyUserService: luckyUserServiceModuleLoader,
|
|
userRepository: userRepositoryModuleLoader,
|
|
hashedLinkService: hashedLinkServiceModuleLoader,
|
|
},
|
|
});
|
|
|
|
export const moduleLoader = {
|
|
token,
|
|
loadModule,
|
|
};
|
|
|
|
export type { RegularBookingService };
|