Files
pcpuma_unam_api/src/equipo-programa/equipo-programa.controller.ts
T

72 lines
2.2 KiB
TypeScript
Raw Normal View History

import {
Body,
Controller,
Delete,
ForbiddenException,
Post,
Request,
UseGuards,
} from '@nestjs/common';
2022-06-24 01:20:22 -05:00
import { AuthGuard } from '@nestjs/passport';
2022-07-15 00:27:30 -05:00
import { ApiBearerAuth, ApiBody, ApiOperation, ApiTags } from '@nestjs/swagger';
import { Operador } from 'src/operador/entity/operador.entity';
2022-06-07 19:55:02 -05:00
import { EquipoProgramaService } from './equipo-programa.service';
2022-06-14 11:43:07 -05:00
import { CreateEquipoProgramaDto } from './dto/input/create.dto';
import { DeleteEquipoProgramaDto } from './dto/input/delete.dto';
2022-07-05 21:53:47 -05:00
@Controller('equipo-programa')
2022-06-12 13:35:47 -05:00
@ApiTags('equipo-programa')
2022-06-07 19:55:02 -05:00
export class EquipoProgramaController {
constructor(private equipoProgramaService: EquipoProgramaService) {}
@Post()
2022-07-15 00:27:30 -05:00
@UseGuards(AuthGuard('jwt'))
2022-06-07 20:00:34 -05:00
@ApiOperation({
description:
'Endpoint que crea una relación entre un equipo y un programa.',
})
2022-07-15 00:27:30 -05:00
@ApiBearerAuth('jwt')
2022-06-07 20:00:34 -05:00
@ApiBody({
description: 'Ambas variables son obligatorios.',
examples: { ejemplo: { value: { id_equipo: 1, id_programa: 1 } } },
})
create(@Request() req, @Body() body: CreateEquipoProgramaDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
2022-06-07 19:55:02 -05:00
return this.equipoProgramaService.create(body.id_equipo, body.id_programa);
}
@Delete()
2022-07-15 00:27:30 -05:00
@UseGuards(AuthGuard('jwt'))
2022-06-07 20:00:34 -05:00
@ApiOperation({
description:
'Endpoint que elimina una relación entre un equipo y un programa.',
})
2022-07-15 00:27:30 -05:00
@ApiBearerAuth('jwt')
2022-06-07 20:00:34 -05:00
@ApiBody({
description: 'La variable id_equipo_programa es obligatoria.',
examples: { ejemplo: { value: { id_equipo_programa: 1 } } },
})
delete(@Request() req, @Body() body: DeleteEquipoProgramaDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
return this.equipoProgramaService.delete(operador, body.id_equipo_programa);
2022-06-07 19:55:02 -05:00
}
}