mirror of
https://github.com/immich-app/immich
synced 2026-08-22 13:13:05 +00:00
refactor: remove Websocket#restartApp in favour of individual methods
This commit is contained in:
parent
aad47ce45a
commit
30d2707cec
2 changed files with 15 additions and 11 deletions
|
|
@ -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<T extends keyof ClientEventMap>(event: T, ...data: ClientEventMap[T]) {
|
||||
this.websocketServer?.emit(event, ...data);
|
||||
}
|
||||
|
||||
serverSend<T extends ServerEvents>(event: T, ...args: ArgsOf<T>): void {
|
||||
this.logger.debug(`Server event: ${event} (send)`);
|
||||
this.websocketServer?.serverSideEmit(event, ...args);
|
||||
}
|
||||
|
||||
handleConnection(client: Socket) {
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue