import { Body, Controller, Delete, Get, Param, ParseIntPipe, Patch, Post, UseGuards, } from '@nestjs/common'; import { ApiBearerAuth, ApiOperation, ApiTags, } from '@nestjs/swagger'; import { JwtAuthGuard } from '../auth/guards/jwt-auth.guard'; import { CountriesService } from './countries.service'; import { CreateCountryDto } from './dto/create-country.dto'; import { UpdateCountryDto } from './dto/update-country.dto'; @ApiTags('countries') @ApiBearerAuth() @UseGuards(JwtAuthGuard) @Controller('countries') export class CountriesController { constructor(private readonly service: CountriesService) {} @Get() @ApiOperation({ summary: 'List all countries' }) findAll() { return this.service.findAll(); } @Get(':id') @ApiOperation({ summary: 'Get one country' }) findOne(@Param('id', ParseIntPipe) id: string) { return this.service.findOne(BigInt(id)); } @Post() @ApiOperation({ summary: 'Create a country' }) create(@Body() dto: CreateCountryDto) { return this.service.create(dto); } @Patch(':id') @ApiOperation({ summary: 'Update a country' }) update( @Param('id', ParseIntPipe) id: string, @Body() dto: UpdateCountryDto, ) { return this.service.update(BigInt(id), dto); } @Delete(':id') @ApiOperation({ summary: 'Delete a country' }) remove(@Param('id', ParseIntPipe) id: string) { return this.service.remove(BigInt(id)); } }