diff --git a/apps/api/v2/src/ee/bookings/2024-04-15/bookings.module.ts b/apps/api/v2/src/ee/bookings/2024-04-15/bookings.module.ts index 41b03b8592..24a7490391 100644 --- a/apps/api/v2/src/ee/bookings/2024-04-15/bookings.module.ts +++ b/apps/api/v2/src/ee/bookings/2024-04-15/bookings.module.ts @@ -1,15 +1,20 @@ import { BookingsController_2024_04_15 } from "@/ee/bookings/2024-04-15/controllers/bookings.controller"; import { PlatformBookingsService } from "@/ee/bookings/shared/platform-bookings.service"; +import { CalendarsRepository } from "@/ee/calendars/calendars.repository"; +import { CalendarsService } from "@/ee/calendars/services/calendars.service"; import { EventTypesModule_2024_04_15 } from "@/ee/event-types/event-types_2024_04_15/event-types.module"; import { EventTypesModule_2024_06_14 } from "@/ee/event-types/event-types_2024_06_14/event-types.module"; import { SchedulesModule_2024_04_15 } from "@/ee/schedules/schedules_2024_04_15/schedules.module"; import { ApiKeysRepository } from "@/modules/api-keys/api-keys-repository"; +import { AppsRepository } from "@/modules/apps/apps.repository"; import { BillingModule } from "@/modules/billing/billing.module"; +import { CredentialsRepository } from "@/modules/credentials/credentials.repository"; import { OAuthClientRepository } from "@/modules/oauth-clients/oauth-client.repository"; import { OAuthClientUsersService } from "@/modules/oauth-clients/services/oauth-clients-users.service"; import { OAuthFlowService } from "@/modules/oauth-clients/services/oauth-flow.service"; import { PrismaModule } from "@/modules/prisma/prisma.module"; import { RedisModule } from "@/modules/redis/redis.module"; +import { SelectedCalendarsRepository } from "@/modules/selected-calendars/selected-calendars.repository"; import { TokensModule } from "@/modules/tokens/tokens.module"; import { TokensRepository } from "@/modules/tokens/tokens.repository"; import { UsersModule } from "@/modules/users/users.module"; @@ -33,6 +38,11 @@ import { Module } from "@nestjs/common"; ApiKeysRepository, OAuthClientUsersService, PlatformBookingsService, + CalendarsService, + CredentialsRepository, + AppsRepository, + CalendarsRepository, + SelectedCalendarsRepository, ], controllers: [BookingsController_2024_04_15], }) diff --git a/apps/api/v2/src/ee/bookings/2024-08-13/bookings.module.ts b/apps/api/v2/src/ee/bookings/2024-08-13/bookings.module.ts index 6585b7055b..df4e6be0fe 100644 --- a/apps/api/v2/src/ee/bookings/2024-08-13/bookings.module.ts +++ b/apps/api/v2/src/ee/bookings/2024-08-13/bookings.module.ts @@ -4,19 +4,24 @@ import { BookingsService_2024_08_13 } from "@/ee/bookings/2024-08-13/services/bo import { InputBookingsService_2024_08_13 } from "@/ee/bookings/2024-08-13/services/input.service"; import { OutputBookingsService_2024_08_13 } from "@/ee/bookings/2024-08-13/services/output.service"; import { PlatformBookingsService } from "@/ee/bookings/shared/platform-bookings.service"; +import { CalendarsRepository } from "@/ee/calendars/calendars.repository"; +import { CalendarsService } from "@/ee/calendars/services/calendars.service"; import { EventTypesModule_2024_04_15 } from "@/ee/event-types/event-types_2024_04_15/event-types.module"; import { EventTypesModule_2024_06_14 } from "@/ee/event-types/event-types_2024_06_14/event-types.module"; import { EventTypesRepository_2024_06_14 } from "@/ee/event-types/event-types_2024_06_14/event-types.repository"; import { SchedulesModule_2024_04_15 } from "@/ee/schedules/schedules_2024_04_15/schedules.module"; import { ApiKeysRepository } from "@/modules/api-keys/api-keys-repository"; +import { AppsRepository } from "@/modules/apps/apps.repository"; import { BillingModule } from "@/modules/billing/billing.module"; import { BookingSeatModule } from "@/modules/booking-seat/booking-seat.module"; import { BookingSeatRepository } from "@/modules/booking-seat/booking-seat.repository"; +import { CredentialsRepository } from "@/modules/credentials/credentials.repository"; import { OAuthClientRepository } from "@/modules/oauth-clients/oauth-client.repository"; import { OAuthClientUsersService } from "@/modules/oauth-clients/services/oauth-clients-users.service"; import { OAuthFlowService } from "@/modules/oauth-clients/services/oauth-flow.service"; import { PrismaModule } from "@/modules/prisma/prisma.module"; import { RedisModule } from "@/modules/redis/redis.module"; +import { SelectedCalendarsRepository } from "@/modules/selected-calendars/selected-calendars.repository"; import { TokensModule } from "@/modules/tokens/tokens.module"; import { TokensRepository } from "@/modules/tokens/tokens.repository"; import { UsersModule } from "@/modules/users/users.module"; @@ -47,6 +52,11 @@ import { Module } from "@nestjs/common"; BookingSeatRepository, ApiKeysRepository, PlatformBookingsService, + CalendarsService, + CredentialsRepository, + AppsRepository, + CalendarsRepository, + SelectedCalendarsRepository, ], controllers: [BookingsController_2024_08_13], exports: [InputBookingsService_2024_08_13, OutputBookingsService_2024_08_13, BookingsService_2024_08_13], diff --git a/apps/api/v2/src/modules/oauth-clients/oauth-client.module.ts b/apps/api/v2/src/modules/oauth-clients/oauth-client.module.ts index 8756c2de50..e14176f3a3 100644 --- a/apps/api/v2/src/modules/oauth-clients/oauth-client.module.ts +++ b/apps/api/v2/src/modules/oauth-clients/oauth-client.module.ts @@ -1,7 +1,11 @@ +import { CalendarsRepository } from "@/ee/calendars/calendars.repository"; +import { CalendarsService } from "@/ee/calendars/services/calendars.service"; import { EventTypesModule_2024_04_15 } from "@/ee/event-types/event-types_2024_04_15/event-types.module"; import { SchedulesModule_2024_04_15 } from "@/ee/schedules/schedules_2024_04_15/schedules.module"; +import { AppsRepository } from "@/modules/apps/apps.repository"; import { AuthModule } from "@/modules/auth/auth.module"; import { BillingModule } from "@/modules/billing/billing.module"; +import { CredentialsRepository } from "@/modules/credentials/credentials.repository"; import { MembershipsModule } from "@/modules/memberships/memberships.module"; import { OAuthClientUsersController } from "@/modules/oauth-clients/controllers/oauth-client-users/oauth-client-users.controller"; import { OAuthClientsController } from "@/modules/oauth-clients/controllers/oauth-clients/oauth-clients.controller"; @@ -16,6 +20,7 @@ import { OrganizationsModule } from "@/modules/organizations/organizations.modul import { OrganizationsTeamsService } from "@/modules/organizations/teams/index/services/organizations-teams.service"; import { PrismaModule } from "@/modules/prisma/prisma.module"; import { RedisModule } from "@/modules/redis/redis.module"; +import { SelectedCalendarsRepository } from "@/modules/selected-calendars/selected-calendars.repository"; import { StripeModule } from "@/modules/stripe/stripe.module"; import { TokensModule } from "@/modules/tokens/tokens.module"; import { TokensRepository } from "@/modules/tokens/tokens.repository"; @@ -42,6 +47,11 @@ import { JwtService } from "@nestjs/jwt"; OAuthClientRepository, TokensRepository, OAuthFlowService, + CalendarsService, + CredentialsRepository, + AppsRepository, + CalendarsRepository, + SelectedCalendarsRepository, OAuthClientUsersService, OrganizationsTeamsService, OAuthClientsService, diff --git a/apps/api/v2/src/modules/oauth-clients/services/oauth-clients-users.service.ts b/apps/api/v2/src/modules/oauth-clients/services/oauth-clients-users.service.ts index 2d41b34f79..bfe69636b9 100644 --- a/apps/api/v2/src/modules/oauth-clients/services/oauth-clients-users.service.ts +++ b/apps/api/v2/src/modules/oauth-clients/services/oauth-clients-users.service.ts @@ -1,3 +1,4 @@ +import { CalendarsService } from "@/ee/calendars/services/calendars.service"; import { EventTypesService_2024_04_15 } from "@/ee/event-types/event-types_2024_04_15/services/event-types.service"; import { SchedulesService_2024_04_15 } from "@/ee/schedules/schedules_2024_04_15/services/schedules.service"; import { GetManagedUsersInput } from "@/modules/oauth-clients/controllers/oauth-client-users/inputs/get-managed-users.input"; @@ -5,18 +6,21 @@ import { TokensRepository } from "@/modules/tokens/tokens.repository"; import { CreateManagedUserInput } from "@/modules/users/inputs/create-managed-user.input"; import { UpdateManagedUserInput } from "@/modules/users/inputs/update-managed-user.input"; import { UsersRepository } from "@/modules/users/users.repository"; -import { BadRequestException, ConflictException, Injectable } from "@nestjs/common"; +import { BadRequestException, ConflictException, Injectable, Logger } from "@nestjs/common"; import { User, CreationSource, PlatformOAuthClient } from "@prisma/client"; import { createNewUsersConnectToOrgIfExists, slugify } from "@calcom/platform-libraries"; @Injectable() export class OAuthClientUsersService { + private readonly logger = new Logger("OAuthClientUsersService"); + constructor( private readonly userRepository: UsersRepository, private readonly tokensRepository: TokensRepository, private readonly eventTypesService: EventTypesService_2024_04_15, - private readonly schedulesService: SchedulesService_2024_04_15 + private readonly schedulesService: SchedulesService_2024_04_15, + private readonly calendarsService: CalendarsService ) {} async createOAuthClientUser(oAuthClient: PlatformOAuthClient, body: CreateManagedUserInput) { @@ -87,6 +91,13 @@ export class OAuthClientUsersService { user.defaultScheduleId = defaultSchedule.id; } + try { + this.logger.log(`Setting default calendars in db for user with id ${user.id}`); + await this.calendarsService.getCalendars(user.id); + } catch (err) { + this.logger.error(`Could not get calendars of new managed user with id ${user.id}`); + } + return { user, tokens: {