From b5ff460a55aac37dc54828bad563fbc364fd2ad5 Mon Sep 17 00:00:00 2001 From: izzy Date: Tue, 2 Dec 2025 15:25:12 +0000 Subject: [PATCH] refactor: move maintenance worker init into service --- server/src/app.module.ts | 28 ++----------------- .../maintenance/maintenance-worker.service.ts | 21 ++++++++++++++ 2 files changed, 23 insertions(+), 26 deletions(-) diff --git a/server/src/app.module.ts b/server/src/app.module.ts index e86a90a732..25dab73ef3 100644 --- a/server/src/app.module.ts +++ b/server/src/app.module.ts @@ -8,8 +8,7 @@ import { OpenTelemetryModule } from 'nestjs-otel'; import { commandsAndQuestions } from 'src/commands'; import { IWorker } from 'src/constants'; import { controllers } from 'src/controllers'; -import { StorageCore } from 'src/cores/storage.core'; -import { ImmichWorker, SystemMetadataKey } from 'src/enum'; +import { ImmichWorker } from 'src/enum'; import { MaintenanceAuthGuard } from 'src/maintenance/maintenance-auth.guard'; import { MaintenanceEphemeralStateRepository } from 'src/maintenance/maintenance-ephemeral-state.repository'; import { MaintenanceWebsocketRepository } from 'src/maintenance/maintenance-websocket.repository'; @@ -35,7 +34,6 @@ import { services } from 'src/services'; import { AuthService } from 'src/services/auth.service'; import { CliService } from 'src/services/cli.service'; import { QueueService } from 'src/services/queue.service'; -import { MaintenanceModeState } from 'src/types'; import { getKyselyConfig } from 'src/utils/database'; const common = [...repositories, ...services, GlobalExceptionFilter]; @@ -126,35 +124,13 @@ export class MaintenanceModule { constructor( @Inject(IWorker) private worker: ImmichWorker, logger: LoggingRepository, - private systemMetadataRepository: SystemMetadataRepository, private maintenanceWorkerService: MaintenanceWorkerService, - private maintenanceWebsocketRepository: MaintenanceWebsocketRepository, - private maintenanceEphemeralStateRepository: MaintenanceEphemeralStateRepository, ) { logger.setAppName(this.worker); } async onModuleInit() { - const state = (await this.systemMetadataRepository.get( - SystemMetadataKey.MaintenanceMode, - )) as MaintenanceModeState & { isMaintenanceMode: true }; - - this.maintenanceEphemeralStateRepository.setSecret(state.secret); - this.maintenanceEphemeralStateRepository.setStatus({ - action: state.action.action, - }); - StorageCore.setMediaLocation(this.maintenanceWorkerService.detectMediaLocation()); - - this.maintenanceWebsocketRepository.setAuthFn(async (client) => - this.maintenanceWorkerService.authenticate(client.request.headers), - ); - - this.maintenanceWebsocketRepository.setStatusUpdateFn((status) => - this.maintenanceEphemeralStateRepository.setStatus(status), - ); - - await this.maintenanceWorkerService.logSecret(); - void this.maintenanceWorkerService.runAction(state.action); + await this.maintenanceWorkerService.init(); } } diff --git a/server/src/maintenance/maintenance-worker.service.ts b/server/src/maintenance/maintenance-worker.service.ts index 9fe45b63be..3605ae1af4 100644 --- a/server/src/maintenance/maintenance-worker.service.ts +++ b/server/src/maintenance/maintenance-worker.service.ts @@ -51,6 +51,27 @@ export class MaintenanceWorkerService { this.logger.setContext(this.constructor.name); } + async init() { + const state = (await this.systemMetadataRepository.get( + SystemMetadataKey.MaintenanceMode, + )) as MaintenanceModeState & { isMaintenanceMode: true }; + + this.maintenanceEphemeralStateRepository.setSecret(state.secret); + this.maintenanceEphemeralStateRepository.setStatus({ + action: state.action.action, + }); + StorageCore.setMediaLocation(this.detectMediaLocation()); + + this.maintenanceWebsocketRepository.setAuthFn(async (client) => this.authenticate(client.request.headers)); + + this.maintenanceWebsocketRepository.setStatusUpdateFn((status) => + this.maintenanceEphemeralStateRepository.setStatus(status), + ); + + await this.logSecret(); + void this.runAction(state.action); + } + /** * {@link _BaseService.configRepos} */