import { Controller, Get, Post, Put, Delete, Body, Param, UseGuards, Request } 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 { PaymentsService } from './payments.service'; @ApiTags('payments') @Controller('payments') @ApiBearerAuth() @UseGuards(JwtAuthGuard) export class PaymentsController { constructor(private paymentsService: PaymentsService) {} @Get() @RequireCapability('transactions.view') findAll() { return this.paymentsService.findAll(); } @Get(':id') @RequireCapability('transactions.view') findOne(@Param('id') id: string) { return this.paymentsService.findOne(id); } @Post() @RequireCapability('transactions.edit') create(@Body() dto: any, @Request() req: any) { return this.paymentsService.create(dto, req.user.sub); } @Put(':id') @RequireCapability('transactions.edit') update(@Param('id') id: string, @Body() dto: any, @Request() req: any) { return this.paymentsService.update(id, dto, req.user.sub); } @Delete(':id') @RequireCapability('transactions.edit') delete(@Param('id') id: string) { return this.paymentsService.delete(id); } }