Files
pcpuma_unam_api/src/hora-excepcion/hora-excepcion.controller.ts
T
2022-06-02 23:13:29 -05:00

87 lines
2.3 KiB
TypeScript

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);
}
}