aspans_patrol/apps/api/src/modules/reports/reports.controller.ts
2026-10-22 10:53:02 +05:00

33 lines
1.0 KiB
TypeScript

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<string, string>) {
this.check(user);
return this.reports.rounds(user, query);
}
@Get('summary')
summary(@CurrentUser() user: AuthUser, @Query() query: Record<string, string>) {
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);
}
}