33 lines
1.0 KiB
TypeScript
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);
|
|
}
|
|
}
|