From 30d2707cec4e663cb188d9872b9cc1653c69411d Mon Sep 17 00:00:00 2001 From: izzy Date: Fri, 14 Nov 2025 15:55:18 +0000 Subject: [PATCH] refactor: remove Websocket#restartApp in favour of individual methods --- .../maintenance-websocket.repository.ts | 20 +++++++++---------- .../maintenance-worker.service.spec.ts | 6 +++++- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/server/src/maintenance/maintenance-websocket.repository.ts b/server/src/maintenance/maintenance-websocket.repository.ts index 39316ea367..5d8368cf69 100644 --- a/server/src/maintenance/maintenance-websocket.repository.ts +++ b/server/src/maintenance/maintenance-websocket.repository.ts @@ -8,7 +8,7 @@ import { } from '@nestjs/websockets'; import { Server, Socket } from 'socket.io'; import { AppRepository } from 'src/repositories/app.repository'; -import { AppRestartEvent } from 'src/repositories/event.repository'; +import { AppRestartEvent, ArgsOf } from 'src/repositories/event.repository'; import { LoggingRepository } from 'src/repositories/logging.repository'; export const serverEvents = ['AppRestart'] as const; @@ -30,23 +30,23 @@ export class MaintenanceWebsocketRepository implements OnGatewayConnection, OnGa constructor( private logger: LoggingRepository, - private maintenanceRepository: AppRepository, + private appRepository: AppRepository, ) { this.logger.setContext(MaintenanceWebsocketRepository.name); } afterInit(websocketServer: Server) { this.logger.log('Initialized websocket server'); - websocketServer.on('AppRestart', () => this.maintenanceRepository.exitApp()); + websocketServer.on('AppRestart', () => this.appRepository.exitApp()); } - restartApp(state: AppRestartEvent) { - // => corresponds to notification.service.ts#onAppRestart - this.websocketServer?.emit('AppRestartV1', state, () => { - this.websocketServer!.serverSideEmit('AppRestart', state, () => { - this.maintenanceRepository.exitApp(); - }); - }); + clientBroadcast(event: T, ...data: ClientEventMap[T]) { + this.websocketServer?.emit(event, ...data); + } + + serverSend(event: T, ...args: ArgsOf): void { + this.logger.debug(`Server event: ${event} (send)`); + this.websocketServer?.serverSideEmit(event, ...args); } handleConnection(client: Socket) { diff --git a/server/src/maintenance/maintenance-worker.service.spec.ts b/server/src/maintenance/maintenance-worker.service.spec.ts index c1648c2fb2..e87dab04fa 100644 --- a/server/src/maintenance/maintenance-worker.service.spec.ts +++ b/server/src/maintenance/maintenance-worker.service.spec.ts @@ -115,7 +115,11 @@ describe(MaintenanceWorkerService.name, () => { isMaintenanceMode: false, }); - expect(maintenanceWorkerRepositoryMock.restartApp).toHaveBeenCalledWith({ + expect(maintenanceWorkerRepositoryMock.clientBroadcast).toHaveBeenCalledWith('AppRestartV1', { + isMaintenanceMode: false, + }); + + expect(maintenanceWorkerRepositoryMock.serverSend).toHaveBeenCalledWith('AppRestart', { isMaintenanceMode: false, }); });