From bea36272afa71f225e9836697347c2b099624942 Mon Sep 17 00:00:00 2001 From: Carlos Santos <4a.santos@gmail.com> Date: Mon, 31 Mar 2025 13:17:47 +0200 Subject: [PATCH] backend: Force initialization of RecordingService instance in dependency injector --- backend/src/config/dependency-injector.config.ts | 8 ++++++++ backend/src/server.ts | 5 +++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/backend/src/config/dependency-injector.config.ts b/backend/src/config/dependency-injector.config.ts index 2519101..92a0a53 100644 --- a/backend/src/config/dependency-injector.config.ts +++ b/backend/src/config/dependency-injector.config.ts @@ -45,12 +45,20 @@ const registerDependencies = () => { container.bind(RedisService).toSelf().inSingletonScope(); container.bind(S3Service).toSelf().inSingletonScope(); container.bind(RecordingService).toSelf().inSingletonScope(); + container.bind(LivekitWebhookService).toSelf().inSingletonScope(); container.bind(GlobalPreferencesService).toSelf().inSingletonScope(); container.bind(ParticipantService).toSelf().inSingletonScope(); container.bind(S3PreferenceStorage).toSelf().inSingletonScope(); container.bind(GlobalPreferencesStorageFactory).toSelf().inSingletonScope(); + + initializeEagerServices(); +}; + +const initializeEagerServices = () => { + // Force the creation of services that need to be initialized at startup + container.get(RecordingService); }; export { injectable, inject } from 'inversify'; diff --git a/backend/src/server.ts b/backend/src/server.ts index b53cf28..a68ed93 100644 --- a/backend/src/server.ts +++ b/backend/src/server.ts @@ -19,7 +19,7 @@ import { recordingRouter, roomRouter } from './routes/index.js'; -import { GlobalPreferencesService, RoomService } from './services/index.js'; +import { GlobalPreferencesService } from './services/index.js'; import { internalParticipantsRouter } from './routes/participants.routes.js'; import cookieParser from 'cookie-parser'; @@ -67,6 +67,7 @@ const createApp = () => { const initializeGlobalPreferences = async () => { const globalPreferencesService = container.get(GlobalPreferencesService); + // TODO: This should be invoked in the constructor of the service await globalPreferencesService.ensurePreferencesInitialized(); }; @@ -81,7 +82,7 @@ const startServer = (app: express.Application) => { chalk.cyanBright(`http://localhost:${SERVER_PORT}${MEET_API_BASE_PATH_V1}/docs`) ); logEnvVars(); - await Promise.all([initializeGlobalPreferences(), container.get(RoomService).initialize()]); + await Promise.all([initializeGlobalPreferences()]); }); };