72 lines
2.2 KiB
TypeScript
72 lines
2.2 KiB
TypeScript
import {
|
|
Body,
|
|
Controller,
|
|
Delete,
|
|
ForbiddenException,
|
|
Post,
|
|
Request,
|
|
UseGuards,
|
|
} from '@nestjs/common';
|
|
import { AuthGuard } from '@nestjs/passport';
|
|
import { ApiBearerAuth, ApiBody, ApiOperation, ApiTags } from '@nestjs/swagger';
|
|
import { Operador } from 'src/operador/entity/operador.entity';
|
|
import { EquipoProgramaService } from './equipo-programa.service';
|
|
import { CreateEquipoProgramaDto } from './dto/input/create.dto';
|
|
import { DeleteEquipoProgramaDto } from './dto/input/delete.dto';
|
|
|
|
@Controller('equipo-programa')
|
|
@ApiTags('equipo-programa')
|
|
export class EquipoProgramaController {
|
|
constructor(private equipoProgramaService: EquipoProgramaService) {}
|
|
|
|
@Post()
|
|
@UseGuards(AuthGuard('jwt'))
|
|
@ApiOperation({
|
|
description:
|
|
'Endpoint que crea una relación entre un equipo y un programa.',
|
|
})
|
|
@ApiBearerAuth('jwt')
|
|
@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.',
|
|
);
|
|
return this.equipoProgramaService.create(body.id_equipo, body.id_programa);
|
|
}
|
|
|
|
@Delete()
|
|
@UseGuards(AuthGuard('jwt'))
|
|
@ApiOperation({
|
|
description:
|
|
'Endpoint que elimina una relación entre un equipo y un programa.',
|
|
})
|
|
@ApiBearerAuth('jwt')
|
|
@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);
|
|
}
|
|
}
|