* feat: add endpoint to add attendees to existing bookings - Created POST /v2/bookings/:bookingUid/attendees endpoint - Added AddAttendeesInput_2024_08_13 for input validation - Added AddAttendeesOutput_2024_08_13 for response format - Created BookingAttendeesService_2024_08_13 for business logic - Created BookingAttendeesController_2024_08_13 for API endpoint - Added validation to check for duplicate attendee emails - Integrated with existing booking and event type repositories - Added validateAndTransformAddAttendeesInput method to InputBookingsService - Fixed pre-existing ESLint no-prototype-builtins warnings - Left placeholder for custom booking field validation logic Co-Authored-By: somay@cal.com <somaychauhan98@gmail.com> * refactor: move booking attendee operations to dedicated repository * refactor: move repository files into dedicated repositories directory * feat: validate guests field availability before adding attendees to booking * feat: migrate addAttendees API to use existing addGuests handler * refactor: remove unused validateAndTransformAddAttendeesInput method from InputBookingsService * refactor: rename attendees to guests in booking API endpoints and types * refactor: rename booking-attendees to booking-guests for consistency * WIP: add e2e tests for add booking guests endpoint * faet: improve guest booking tests * refactor: extract getHtml method in email templates * feat: add email toggle support for guest invites based on OAuth client settings * refactor: addGuests handler * feat: add SMS notifications when adding guests to existing bookings * refactor: rename add-attendees to add-guests for consistent terminology * refactor: added repository pattern in addGuests.handler * test: add attendee scheduled email spy to booking guests tests * fix: use event type team ID instead of user org ID for booking permission check * Update BookingEmailSmsHandler.ts * Remove comments * refactor: rename booking guests to booking attendees * refactor: rename guest-related methods to use attendees terminology for consistency * update api docs * refactor: restructure addGuests handler to top * refactor: update guest email format to use object structure in booking tests * docs: clarify API version header requirement for booking attendees endpoint * docs: add email notification details to booking attendees API documentation * refactor: rename booking attendees to guests for consistency * refactor: rename attendees to guests in booking API endpoints * feat: add email validation for guest invites * feat: improve error handling for guest booking failures --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
52 lines
2.0 KiB
TypeScript
52 lines
2.0 KiB
TypeScript
import { BookingsRepository_2024_08_13 } from "@/ee/bookings/2024-08-13/repositories/bookings.repository";
|
|
import { BillingProcessor } from "@/modules/billing/billing.processor";
|
|
import { BillingRepository } from "@/modules/billing/billing.repository";
|
|
import { BillingController } from "@/modules/billing/controllers/billing.controller";
|
|
import { BillingServiceCachingProxy } from "@/modules/billing/services/billing-service-caching-proxy";
|
|
import { BillingConfigService } from "@/modules/billing/services/billing.config.service";
|
|
import { BillingService } from "@/modules/billing/services/billing.service";
|
|
import { ManagedOrganizationsBillingService } from "@/modules/billing/services/managed-organizations.billing.service";
|
|
import { MembershipsModule } from "@/modules/memberships/memberships.module";
|
|
import { OAuthClientRepository } from "@/modules/oauth-clients/oauth-client.repository";
|
|
import { OrganizationsModule } from "@/modules/organizations/organizations.module";
|
|
import { PrismaModule } from "@/modules/prisma/prisma.module";
|
|
import { RedisModule } from "@/modules/redis/redis.module";
|
|
import { StripeModule } from "@/modules/stripe/stripe.module";
|
|
import { UsersModule } from "@/modules/users/users.module";
|
|
import { BullModule } from "@nestjs/bull";
|
|
import { Module } from "@nestjs/common";
|
|
|
|
@Module({
|
|
imports: [
|
|
PrismaModule,
|
|
StripeModule,
|
|
RedisModule,
|
|
MembershipsModule,
|
|
OrganizationsModule,
|
|
BullModule.registerQueue({
|
|
name: "billing",
|
|
limiter: {
|
|
max: 1,
|
|
duration: 1000,
|
|
},
|
|
}),
|
|
UsersModule,
|
|
],
|
|
providers: [
|
|
BillingConfigService,
|
|
BillingService,
|
|
{
|
|
provide: "IBillingService",
|
|
useClass: BillingServiceCachingProxy,
|
|
},
|
|
BillingRepository,
|
|
BillingProcessor,
|
|
ManagedOrganizationsBillingService,
|
|
OAuthClientRepository,
|
|
BookingsRepository_2024_08_13,
|
|
],
|
|
exports: [BillingService, BillingRepository, ManagedOrganizationsBillingService],
|
|
controllers: [BillingController],
|
|
})
|
|
export class BillingModule {}
|