refactor: use system metadata for maintenance status

This commit is contained in:
izzy 2025-10-31 17:28:57 +00:00
parent 625230f3e5
commit 2afbff36a3
No known key found for this signature in database
GPG key ID: 5059F398521BB0F6
21 changed files with 240 additions and 124 deletions

View file

@ -11,6 +11,7 @@ import { DuplicateController } from 'src/controllers/duplicate.controller';
import { FaceController } from 'src/controllers/face.controller';
import { JobController } from 'src/controllers/job.controller';
import { LibraryController } from 'src/controllers/library.controller';
import { MaintenanceController } from 'src/controllers/maintenance.controller';
import { MapController } from 'src/controllers/map.controller';
import { MemoryController } from 'src/controllers/memory.controller';
import { NotificationAdminController } from 'src/controllers/notification-admin.controller';
@ -47,6 +48,7 @@ export const controllers = [
FaceController,
JobController,
LibraryController,
MaintenanceController,
MapController,
MemoryController,
NotificationController,
@ -70,4 +72,4 @@ export const controllers = [
ViewController,
];
export const maintenanceControllers = [MaintenanceServerController, MaintenanceUserController, SystemConfigController];
export const maintenanceControllers = [MaintenanceServerController, MaintenanceUserController, MaintenanceController];

View file

@ -0,0 +1,28 @@
import { Controller, Get, Post } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger';
import { Permission } from 'src/enum';
import { Authenticated } from 'src/middleware/auth.guard';
import { MaintenanceService } from 'src/services/maintenance.service';
@ApiTags('Maintenance (admin)')
@Controller('admin/maintenance')
export class MaintenanceController {
constructor(private service: MaintenanceService) {}
@Get()
getMaintenanceMode() {
return this.service.getMaintenanceMode();
}
@Post('start')
@Authenticated({ permission: Permission.SystemMetadataUpdate, admin: true })
startMaintenance() {
return this.service.startMaintenance();
}
@Post('end')
@Authenticated({ permission: Permission.SystemMetadataUpdate, admin: true })
endMaintenance() {
return this.service.endMaintenance();
}
}