import { Body, Controller, Delete, Get, Param, Patch, Post, Query } from '@nestjs/common'; import { Permissions } from '../common/permissions.js'; import { AuditLog, RequirePermissions } from '../auth/decorators.js'; import { CreateConfigDto, ListConfigQuery, UpdateConfigDto } from './dto.js'; import { ConfigsService } from './configs.service.js'; @Controller('configs') export class ConfigsController { constructor(private readonly service: ConfigsService) {} @Get() @RequirePermissions(Permissions.config.list) list(@Query() q: ListConfigQuery) { return this.service.listConfigs(q); } @Get(':id') @RequirePermissions(Permissions.config.list) get(@Param('id') id: string) { return this.service.findById(id); } @Post() @RequirePermissions(Permissions.config.create) @AuditLog('config', 'create') create(@Body() dto: CreateConfigDto) { return this.service.createConfig(dto); } @Patch(':id') @RequirePermissions(Permissions.config.update) @AuditLog('config', 'update') update(@Param('id') id: string, @Body() dto: UpdateConfigDto) { return this.service.updateConfig(id, dto); } @Delete(':id') @RequirePermissions(Permissions.config.delete) @AuditLog('config', 'delete') remove(@Param('id') id: string) { return this.service.softRemove(id); } }