Files
HexaHost-GameCloud/apps/api/src/admin/admin-dashboard.controller.ts

23 lines
757 B
TypeScript

import { Controller, Get, UseGuards } from '@nestjs/common';
import { ApiOperation, ApiTags } from '@nestjs/swagger';
import { CurrentUser } from '../auth/decorators/current-user.decorator';
import { SessionGuard } from '../auth/guards/session.guard';
import { assertSuperAdmin } from './admin-auth.util';
import { AdminDashboardService } from './admin-dashboard.service';
@ApiTags('admin')
@Controller('admin/dashboard')
@UseGuards(SessionGuard)
export class AdminDashboardController {
constructor(private readonly dashboard: AdminDashboardService) {}
@Get()
@ApiOperation({ summary: 'Admin dashboard statistics' })
stats(@CurrentUser() user: { roles: string[] }) {
assertSuperAdmin(user.roles);
return this.dashboard.getStats();
}
}