From 47e673ef5544a8a11a114a7f0a4805a46dfaa902 Mon Sep 17 00:00:00 2001 From: izzy Date: Fri, 31 Oct 2025 15:50:26 +0000 Subject: [PATCH] chore: add additional routes to maintenance controller --- server/src/controllers/index.ts | 4 +- server/src/controllers/server.controller.ts | 48 +++++++++++++++++++++ server/src/controllers/user.controller.ts | 17 ++++++++ 3 files changed, 67 insertions(+), 2 deletions(-) diff --git a/server/src/controllers/index.ts b/server/src/controllers/index.ts index 01bc2a19e8..69b5aaaebf 100644 --- a/server/src/controllers/index.ts +++ b/server/src/controllers/index.ts @@ -30,7 +30,7 @@ import { TagController } from 'src/controllers/tag.controller'; import { TimelineController } from 'src/controllers/timeline.controller'; import { TrashController } from 'src/controllers/trash.controller'; import { UserAdminController } from 'src/controllers/user-admin.controller'; -import { UserController } from 'src/controllers/user.controller'; +import { MaintenanceUserController, UserController } from 'src/controllers/user.controller'; import { ViewController } from 'src/controllers/view.controller'; export const controllers = [ @@ -70,4 +70,4 @@ export const controllers = [ ViewController, ]; -export const maintenanceControllers = [MaintenanceServerController, SystemConfigController]; +export const maintenanceControllers = [MaintenanceServerController, MaintenanceUserController, SystemConfigController]; diff --git a/server/src/controllers/server.controller.ts b/server/src/controllers/server.controller.ts index 571df39b9f..7fcd5166a3 100644 --- a/server/src/controllers/server.controller.ts +++ b/server/src/controllers/server.controller.ts @@ -120,9 +120,28 @@ export class ServerController { export class MaintenanceServerController { constructor( private service: ServerService, + private systemMetadataService: SystemMetadataService, private versionService: VersionService, ) {} + @Get('about') + @Authenticated({ permission: Permission.ServerAbout }) + getAboutInfo(): Promise { + return this.service.getAboutInfo(); + } + + @Get('apk-links') + @Authenticated({ permission: Permission.ServerApkLinks }) + getApkLinks(): ServerApkLinksDto { + return this.service.getApkLinks(); + } + + @Get('storage') + @Authenticated({ permission: Permission.ServerStorage }) + getStorage(): Promise { + return this.service.getStorage(); + } + @Get('ping') pingServer(): ServerPingResponse { return this.service.ping(); @@ -133,18 +152,47 @@ export class MaintenanceServerController { return this.versionService.getVersion(); } + @Get('version-history') + getVersionHistory(): Promise { + return this.versionService.getVersionHistory(); + } + @Get('features') getServerFeatures(): Promise { return this.service.getFeatures(); } + @Get('theme') + getTheme(): Promise { + return this.service.getTheme(); + } + @Get('config') getServerConfig(): Promise { return this.service.getSystemConfig(); } + @Get('statistics') + @Authenticated({ permission: Permission.ServerStatistics, admin: true }) + getServerStatistics(): Promise { + return this.service.getStatistics(); + } + @Get('media-types') getSupportedMediaTypes(): ServerMediaTypesResponseDto { return this.service.getSupportedMediaTypes(); } + + @Get('license') + @Authenticated({ permission: Permission.ServerLicenseRead, admin: true }) + @ApiNotFoundResponse() + getServerLicense(): Promise { + return this.service.getLicense(); + } + + @Get('version-check') + @Authenticated({ permission: Permission.ServerVersionCheck }) + getVersionCheck(): Promise { + return this.systemMetadataService.getVersionCheckState(); + } } diff --git a/server/src/controllers/user.controller.ts b/server/src/controllers/user.controller.ts index d72b088c54..24afc77f59 100644 --- a/server/src/controllers/user.controller.ts +++ b/server/src/controllers/user.controller.ts @@ -140,3 +140,20 @@ export class UserController { await sendFile(res, next, () => this.service.getProfileImage(id), this.logger); } } + +@Controller(RouteKey.User) +export class MaintenanceUserController { + constructor(private service: UserService) {} + + @Get('me') + @Authenticated({ permission: Permission.UserRead }) + getMyUser(@Auth() auth: AuthDto): Promise { + return this.service.getMe(auth); + } + + @Get('me/preferences') + @Authenticated({ permission: Permission.UserPreferenceRead }) + getMyPreferences(@Auth() auth: AuthDto): Promise { + return this.service.getMyPreferences(auth); + } +}