import { Controller, ForbiddenException, Get, Query } from '@nestjs/common'; import { AuthUser, CurrentUser, RequirePermissions } from '../../common/auth'; import { ReportsService } from './reports.service'; @Controller('reports') export class ReportsController { constructor(private readonly reports: ReportsService) {} private check(user: AuthUser) { if (!user.permissions.has('reports.view_all') && !user.permissions.has('reports.view_own')) { throw new ForbiddenException('Недостаточно прав'); } } @Get('rounds') rounds(@CurrentUser() user: AuthUser, @Query() query: Record) { this.check(user); return this.reports.rounds(user, query); } @Get('summary') summary(@CurrentUser() user: AuthUser, @Query() query: Record) { this.check(user); return this.reports.summary(user, query); } @RequirePermissions('audit.view') @Get('audit') audit(@CurrentUser() user: AuthUser, @Query('page') page?: string) { return this.reports.audit(user, Number(page) || 1); } }