api-server/src/modules/admin-servers/admin-servers.controller.ts

23 lines
1001 B
TypeScript
Raw Normal View History

import { Controller, Get, UseGuards } from '@nestjs/common';
import { ApiTags, ApiBearerAuth, ApiOperation } from '@nestjs/swagger';
import { AdminServersService } from './admin-servers.service';
import { AdminAuthGuard } from '../../common/guards/admin-auth.guard';
import { AdminRolesGuard } from '../../common/guards/admin-roles.guard';
import { AdminRoles } from '../../common/decorators/admin-roles.decorator';
import type { AdminRole } from '../../common/types/admin-role.enum';
@ApiTags('admin-servers')
@Controller('admin-api/servers')
@UseGuards(AdminAuthGuard, AdminRolesGuard)
@ApiBearerAuth()
export class AdminServersController {
constructor(private readonly serversService: AdminServersService) {}
@Get('metrics')
@AdminRoles('SUPER_ADMIN' as AdminRole)
@ApiOperation({ summary: '服务器实时指标(仅超级管理员)' })
async getMetrics(): Promise<{ servers: import("./admin-servers.service").ServerInfo[] }> {
return this.serversService.getAllMetrics();
}
}