import { Controller, Get, Post, Put, Body, Param, UseGuards } from '@nestjs/common'; import { ApiTags, ApiBearerAuth } from '@nestjs/swagger'; import { JwtAuthGuard } from '../auth/guards/jwt-auth.guard'; import { RequireCapability } from '../../common/decorators/capability.decorator'; import { AssessmentGroupsService } from './assessment-groups.service'; @ApiTags('assessment-groups') @Controller('assessment-groups') @ApiBearerAuth() @UseGuards(JwtAuthGuard) export class AssessmentGroupsController { constructor(private service: AssessmentGroupsService) {} @Get() @RequireCapability('assessments.groups.view') findAll() { return this.service.findAll(); } @Get('summary') @RequireCapability('assessments.groups.view') getSummary() { return this.service.getSummary(); } @Get('default') @RequireCapability('assessments.groups.view') getDefault() { return this.service.getDefault(); } @Get(':id') @RequireCapability('assessments.groups.view') findOne(@Param('id') id: string) { return this.service.findOne(id); } @Post() @RequireCapability('assessments.groups.edit') create(@Body() dto: any) { return this.service.create(dto); } @Put(':id') @RequireCapability('assessments.groups.edit') update(@Param('id') id: string, @Body() dto: any) { return this.service.update(id, dto); } @Put(':id/set-default') @RequireCapability('assessments.groups.edit') setDefault(@Param('id') id: string) { return this.service.setDefault(id); } }