Commit 5726d07c authored by Diego Iván's avatar Diego Iván
Browse files

agregando controlador a pointOfInterest con metodo para agregar un registro

parent a0e3e80d
Loading
Loading
Loading
Loading
+49 −0
Original line number Diff line number Diff line
import { Controller, Get, Post, Body, Patch, Param, Delete, UseInterceptors, UploadedFile } from '@nestjs/common';
import { PointOfInterestService } from './PointOfInterest.service';
import { CreatePointAndTradDto } from './dto/create-pointAndTraduction.dto';
import { UpdatePointDto } from './dto/update-point.dto';
import { ApiBearerAuth, ApiConsumes, ApiTags } from '@nestjs/swagger';
import { Roles } from 'src/auth/role.decorator';
import { ADMIN_ROLES } from 'src/shared/enum/admin-role.enum';
import { fileInterceptor } from 'src/shared/interceptors/file-save.interceptor';
import { FileValidationPipe } from 'src/shared/pipe/file-validation.pipe';

@Controller('point')
@ApiTags('Point of interest')
export class PointOfInterestController {
  constructor(private readonly activityService: PointOfInterestService) {}

  @ApiConsumes('multipart/form-data')
  @Roles(ADMIN_ROLES)
  @ApiBearerAuth('jwt')
  @Post()
  @UseInterceptors(fileInterceptor('image', 'static/points/', ['.jpg', '.jpeg', '.png']))
  async create(@UploadedFile(new FileValidationPipe()) file, @Body() createActivityDto: CreatePointAndTradDto) {
    try {
      createActivityDto.image = file.filename;
      return await this.activityService.create(createActivityDto);
    } catch (error) {
      throw error;
    }
  }

  @Get()
  findAll() {
    return this.activityService.findAll();
  }

  @Get(':id')
  findOne(@Param('id') id: string) {
    return this.activityService.findOne(+id);
  }

  @Patch(':id')
  update(@Param('id') id: string, @Body() updateActivityDto: UpdatePointDto) {
    return this.activityService.update(+id, updateActivityDto);
  }

  @Delete(':id')
  remove(@Param('id') id: string) {
    return this.activityService.remove(+id);
  }
}