equipo controller final

This commit is contained in:
xXpuma99Xx 2022-12-19 20:05:42 -06:00
parent 8115d7b48b
commit 712848a932
7 changed files with 32 additions and 40 deletions

View File

@ -27,7 +27,7 @@ export class CarritoMotivoController {
@UseGuards(AuthGuard('jwt')) @UseGuards(AuthGuard('jwt'))
@ApiOperation({ @ApiOperation({
description: description:
'Información de 25 cambios de status de un carrito dependiendo de sus filtros.', 'Información de 25 cambios de status de un carrito dependiendo de los filtros enviados.',
}) })
@ApiBearerAuth('jwt') @ApiBearerAuth('jwt')
@ApiQuery({ @ApiQuery({

View File

@ -49,6 +49,7 @@ export class CarritoMotivoService {
const carrito = await this.carritoService.findById(id_carrito); const carrito = await this.carritoService.findById(id_carrito);
const options: FindManyOptions<CarritoMotivo> = { where: { carrito } }; const options: FindManyOptions<CarritoMotivo> = { where: { carrito } };
// Validamos que el carrito pertenezca a la institución del operador
if ( if (
carrito.modulo.institucion.id_institucion != carrito.modulo.institucion.id_institucion !=
operador.institucion.id_institucion operador.institucion.id_institucion

View File

@ -70,7 +70,8 @@ export class CarritoController {
@Get('carritos') @Get('carritos')
@UseGuards(AuthGuard('jwt')) @UseGuards(AuthGuard('jwt'))
@ApiOperation({ @ApiOperation({
description: 'Información de 25 carritos dependiendo de sus filtros.', description:
'Información de 25 carritos dependiendo de los filtros enviados.',
}) })
@ApiBearerAuth('jwt') @ApiBearerAuth('jwt')
@ApiQuery({ @ApiQuery({
@ -110,7 +111,7 @@ export class CarritoController {
required: false, required: false,
}) })
@ApiQuery({ @ApiQuery({
description: 'Página en la que se encuentra el admin.', description: 'Página en la que se encuentra el operador.',
name: 'pagina', name: 'pagina',
type: 'string', type: 'string',
required: false, required: false,

View File

@ -218,7 +218,7 @@ export class CarritoService {
return this.repository.save(carrito); return this.repository.save(carrito);
}) })
.then(async (carrito) => { .then(async (carrito) => {
// Creamos reporte de desactivación // Creamos reporte de desactivación si se paso a inactivo
if (attrs.activo === false) if (attrs.activo === false)
await this.caritoMotivoService.create( await this.caritoMotivoService.create(
carrito, carrito,

View File

@ -1,6 +1,7 @@
import { IsNumberString, IsString } from 'class-validator'; import { IsString, IsNotEmpty } from 'class-validator';
export class NumeroInventarioDto { export class NumeroInventarioDto {
@IsString() @IsString()
@IsNotEmpty()
numero_inventario: string; numero_inventario: string;
} }

View File

@ -20,7 +20,7 @@ import { Serealize } from '../interceptors/serialize.interceptor';
import { EquipoService } from './equipo.service'; import { EquipoService } from './equipo.service';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service'; import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { Operador } from '../operador/entity/operador.entity'; import { Operador } from '../operador/entity/operador.entity';
import { NumeroInventarioDto } from '../dto/numero-inventario.dto'; import { NumeroInventarioDto } from '../dto/input/numero-inventario.dto';
import { EquiposDto } from './dto/input/equipos.dto'; import { EquiposDto } from './dto/input/equipos.dto';
import { MessageOutputDto } from '../dto/output/message.dto'; import { MessageOutputDto } from '../dto/output/message.dto';
import { UpdateEquipoDto } from './dto/input/update.dto'; import { UpdateEquipoDto } from './dto/input/update.dto';
@ -39,12 +39,11 @@ export class EquipoController {
@Get('equipo') @Get('equipo')
@UseGuards(AuthGuard('jwt')) @UseGuards(AuthGuard('jwt'))
@ApiOperation({ @ApiOperation({
description: description: 'Información de un equipo de la institución de un operador.',
'Endpoint que retorna la información de un equipo por su número de inventario de una institución.',
}) })
@ApiBearerAuth('jwt') @ApiBearerAuth('jwt')
@ApiQuery({ @ApiQuery({
description: 'El número de inventario del equipo que se busca.', description: 'Número de inventario del equipo que se busca.',
name: 'numero_inventario', name: 'numero_inventario',
type: 'string', type: 'string',
}) })
@ -52,19 +51,10 @@ export class EquipoController {
const operador: Operador = req.user.operador; const operador: Operador = req.user.operador;
this.validarUsuarioService.validarAdminOperador(operador); this.validarUsuarioService.validarAdminOperador(operador);
return this.equipoService return this.equipoService.findFullInfoByNumeroInventario(
.findFullInfoByNumeroInventario(operador, query.numero_inventario) operador,
.then((equipo) => { query.numero_inventario,
if (
operador.tipoUsuario.id_tipo_usuario > 2 &&
operador.institucion.id_institucion !=
equipo.carrito.modulo.institucion.id_institucion
)
throw new ForbiddenException(
'No puedes acceder a esta información porque este equipo no pertenece a tu institución.',
); );
return equipo;
});
} }
@Serealize(EquiposOutputDto) @Serealize(EquiposOutputDto)
@ -72,76 +62,76 @@ export class EquipoController {
@UseGuards(AuthGuard('jwt')) @UseGuards(AuthGuard('jwt'))
@ApiOperation({ @ApiOperation({
description: description:
'Endpoint que retorna 15 equipos dependiendo de la página en la que esta el usuario y sus filtros.', 'Información de 15 equipos dependiendo de los filtros enviados.',
}) })
@ApiBearerAuth('jwt') @ApiBearerAuth('jwt')
@ApiQuery({ @ApiQuery({
description: 'Página en la que se encuentra el usuario.', description: 'Página en la que se encuentra el operador.',
name: 'pagina', name: 'pagina',
type: 'string', type: 'string',
}) })
@ApiQuery({ @ApiQuery({
description: 'Carrito que se quiere usar como filtro.', description: 'Carrito que se desea buscar.',
name: 'carrito', name: 'carrito',
type: 'string', type: 'string',
required: false, required: false,
}) })
@ApiQuery({ @ApiQuery({
description: 'Equipo que se quiere usar como filtro.', description: 'Equipo que se desea buscar.',
name: 'equipo', name: 'equipo',
type: 'string', type: 'string',
required: false, required: false,
}) })
@ApiQuery({ @ApiQuery({
description: 'Id del carrito que se quiere usar como filtro.', description: 'Id del carrito.',
name: 'id_carrito', name: 'id_carrito',
type: 'string', type: 'string',
required: false, required: false,
}) })
@ApiQuery({ @ApiQuery({
description: 'Id de la institución que se quiere usar como filtro.', description: 'Id de la institución.',
name: 'id_institucion', name: 'id_institucion',
type: 'string', type: 'string',
required: false, required: false,
}) })
@ApiQuery({ @ApiQuery({
description: 'Id de la marca que se quiere usar como filtro.', description: 'Id de la marca.',
name: 'id_marca', name: 'id_marca',
type: 'string', type: 'string',
required: false, required: false,
}) })
@ApiQuery({ @ApiQuery({
description: 'Id del modelo que se quiere usar como filtro.', description: 'Id del modelo.',
name: 'id_modelo', name: 'id_modelo',
type: 'string', type: 'string',
required: false, required: false,
}) })
@ApiQuery({ @ApiQuery({
description: 'Id del módulo que se quiere usar como filtro.', description: 'Id del módulo.',
name: 'id_modulo', name: 'id_modulo',
type: 'string', type: 'string',
required: false, required: false,
}) })
@ApiQuery({ @ApiQuery({
description: 'Id del programa que se quiere usar como filtro.', description: 'Id del programa.',
name: 'id_programa', name: 'id_programa',
type: 'string', type: 'string',
required: false, required: false,
}) })
@ApiQuery({ @ApiQuery({
description: 'Id del status que se quiere usar como filtro.', description: 'Id del status.',
name: 'id_status', name: 'id_status',
type: 'string', type: 'string',
required: false, required: false,
}) })
@ApiQuery({ @ApiQuery({
description: 'Id del tipo de carrito que se quiere usar como filtro.', description: 'Id del tipo de carrito.',
name: 'id_tipo_carrito', name: 'id_tipo_carrito',
type: 'string', type: 'string',
required: false, required: false,
}) })
@ApiQuery({ @ApiQuery({
description: 'Id del tipo de entrada que se quiere usar como filtro.', description: 'Id del tipo de entrada.',
name: 'id_tipo_entrada', name: 'id_tipo_entrada',
type: 'string', type: 'string',
required: false, required: false,
@ -162,14 +152,13 @@ export class EquipoController {
@ApiBearerAuth('jwt') @ApiBearerAuth('jwt')
@ApiBody({ @ApiBody({
description: description:
'Todas las variables a excepción de id_carrito son opcionales.', 'Variables que necesita el endpoint. Las variables con "_" al inicio son opcionales.',
examples: { examples: {
ejemplo: { ejemplo: {
value: { value: {
id_equipo: 1, id_equipo: 1,
_equipo: true, _equipo: '',
_id_carrito: '', _id_carrito: 1,
_id_operador: 1,
_id_status: 1, _id_status: 1,
_motivo: '', _motivo: '',
}, },

View File

@ -24,7 +24,7 @@ import { Usuario } from '../usuario/entity/usuario.entity';
import { Modulo } from '../modulo/entity/modulo.entity'; import { Modulo } from '../modulo/entity/modulo.entity';
import { IdEquipoPaginaDto } from '../dto/input/id-equipo-pagina.dto'; import { IdEquipoPaginaDto } from '../dto/input/id-equipo-pagina.dto';
import { IdUsuarioPaginaDto } from '../dto/input/id-usuario-pagina.dto'; import { IdUsuarioPaginaDto } from '../dto/input/id-usuario-pagina.dto';
import { NumeroInventarioDto } from '../dto/numero-inventario.dto'; import { NumeroInventarioDto } from '../dto/input/numero-inventario.dto';
import { ActivosDto } from './dto/input/activos.dto'; import { ActivosDto } from './dto/input/activos.dto';
import { CancelarOperadorDto } from './dto/input/cancelar-operador.dto'; import { CancelarOperadorDto } from './dto/input/cancelar-operador.dto';
import { HistorialDto } from './dto/input/historial.dto'; import { HistorialDto } from './dto/input/historial.dto';