chore: add additional routes to maintenance controller

This commit is contained in:
izzy 2025-10-31 15:50:26 +00:00
parent 38d2e940e5
commit 47e673ef55
No known key found for this signature in database
GPG key ID: 5059F398521BB0F6
3 changed files with 67 additions and 2 deletions

View file

@ -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];

View file

@ -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<ServerAboutResponseDto> {
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<ServerStorageResponseDto> {
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<ServerVersionHistoryResponseDto[]> {
return this.versionService.getVersionHistory();
}
@Get('features')
getServerFeatures(): Promise<ServerFeaturesDto> {
return this.service.getFeatures();
}
@Get('theme')
getTheme(): Promise<ServerThemeDto> {
return this.service.getTheme();
}
@Get('config')
getServerConfig(): Promise<ServerConfigDto> {
return this.service.getSystemConfig();
}
@Get('statistics')
@Authenticated({ permission: Permission.ServerStatistics, admin: true })
getServerStatistics(): Promise<ServerStatsResponseDto> {
return this.service.getStatistics();
}
@Get('media-types')
getSupportedMediaTypes(): ServerMediaTypesResponseDto {
return this.service.getSupportedMediaTypes();
}
@Get('license')
@Authenticated({ permission: Permission.ServerLicenseRead, admin: true })
@ApiNotFoundResponse()
getServerLicense(): Promise<LicenseResponseDto> {
return this.service.getLicense();
}
@Get('version-check')
@Authenticated({ permission: Permission.ServerVersionCheck })
getVersionCheck(): Promise<VersionCheckStateResponseDto> {
return this.systemMetadataService.getVersionCheckState();
}
}

View file

@ -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<UserAdminResponseDto> {
return this.service.getMe(auth);
}
@Get('me/preferences')
@Authenticated({ permission: Permission.UserPreferenceRead })
getMyPreferences(@Auth() auth: AuthDto): Promise<UserPreferencesResponseDto> {
return this.service.getMyPreferences(auth);
}
}