23 lines
757 B
TypeScript
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();
|
|
}
|
|
}
|