import { Body, Controller, Delete, Get, Post, Put, Query, } from '@nestjs/common'; import { ApiBody, ApiOperation, ApiTags } from '@nestjs/swagger'; import { HoraExcepcionService } from './hora-excepcion.service'; import { HoraExcepcionCreateDto } from './dto/hora-excepcion-create.dto'; import { HoraExcepcionDeleteDto } from './dto/hora-excepcion-delete.dto'; import { HoraExcepcionGetDto } from './dto/hora-excepcion-get.dto'; import { HoraExcepcionUpdateDto } from './dto/hora-excepcion-update.dto'; @Controller('hora-excepcion') @ApiTags('hora-excepcion') export class HoraExcepcionController { constructor(private horaExcepcionService: HoraExcepcionService) {} @Post() @ApiOperation({ description: 'Endpoint que crea una hora excepción.', }) @ApiBody({ description: 'Todas las variables son obligatorias.', examples: { ejemplo: { value: { id_institucion_dia: 217, hora_inicio: ':', hora_fin: ':', }, }, }, }) create(@Body() body: HoraExcepcionCreateDto) { return this.horaExcepcionService.create( body.id_institucion_dia, body.hora_inicio, body.hora_fin, ); } @Delete() @ApiOperation({ description: 'Endpoint que elimina una hora excepción.', }) @ApiBody({ description: 'Es obligatorio mandar la variable id_hora_excepcion.', examples: { ejemplo: { value: { id_hora_excepcion: 1 } } }, }) delete(@Body() body: HoraExcepcionDeleteDto) { return this.horaExcepcionService.delete(body.id_hora_excepcion); } @Get() @ApiOperation({ description: 'Endpoint que retorna las horas excepcion de un día de una institución.', }) get(@Query() query: HoraExcepcionGetDto) { return this.horaExcepcionService.findAllByIdInstitucionDia( parseInt(query.id_institucion_dia), ); } @Put() @ApiOperation({ description: 'Endpoint que actualiza lan información de una hora excepcion.', }) @ApiBody({ description: 'Todoas las variables a excepción de id_hora_excepcion son opcionales pero se tiene que mandar forzosamente una hora.', examples: { ejemplo: { value: { id_hora_excepcion: 1, hora_inicio: '', hora_fin: '' }, }, }, }) update(@Body() body: HoraExcepcionUpdateDto) { return this.horaExcepcionService.update(body); } }