From 80111e15e0a276ecb4380f5b8c17d7d0514ab0fe Mon Sep 17 00:00:00 2001 From: lemuel Date: Mon, 21 Nov 2022 22:20:35 -0600 Subject: [PATCH] mini cambios --- src/auth/auth.service.ts | 5 +- src/auth/strategy/jwt-strategy.service.ts | 2 +- src/carrito/carrito.service.ts | 9 +-- src/equipo-motivo/equipo-motivo.service.ts | 12 +--- src/equipo/equipo.service.ts | 81 ++++++++-------------- 5 files changed, 37 insertions(+), 72 deletions(-) diff --git a/src/auth/auth.service.ts b/src/auth/auth.service.ts index 0f52d33..80deb9b 100644 --- a/src/auth/auth.service.ts +++ b/src/auth/auth.service.ts @@ -35,12 +35,11 @@ export class AuthService { id_operador: admin.id_operador, operador: admin.operador, nombre: admin.nombre, - // institucion: { id_institucion: admin.institucion.id_institucion }, tipoUsuario: { id_tipo_usuario: admin.tipoUsuario.id_tipo_usuario }, }, }; - // Los super admin y sistema no tienen institucion + // Los super admin y sistema no tienen institución if (JwtPayload.Operador.tipoUsuario.id_tipo_usuario > 2) JwtPayload.Operador.institucion = { id_institucion: admin.institucion.id_institucion, @@ -83,7 +82,7 @@ export class AuthService { loginUsuario(usuario: string, password: string) { return this.usuarioService.findByUsuario(usuario).then((usuario) => { - // Sin password = no registrado, valida que este registrado + // Sin password = no registrado, valido que este registrado if (usuario && !usuario.password) throw new BadRequestException('Este usuario no ha sido registrado.'); this.validacionBasica(usuario, password); diff --git a/src/auth/strategy/jwt-strategy.service.ts b/src/auth/strategy/jwt-strategy.service.ts index 2bb9235..deb01ec 100644 --- a/src/auth/strategy/jwt-strategy.service.ts +++ b/src/auth/strategy/jwt-strategy.service.ts @@ -50,7 +50,7 @@ export class JwtStrategyService extends PassportStrategy(Strategy) { // Valida que la cuena del operador este activa if (!operador.activo) throw new ForbiddenException('Esta cuenta esta desactivada.'); - // Validar que venga en el payload venga con un objeto Modulo en + // Validar que venga en el payload con un objeto Modulo en // caso de ser tipo usuario operador y asignarlo al objeto user if (operador.tipoUsuario.id_tipo_usuario === 4) { if ('Modulo' in payload) diff --git a/src/carrito/carrito.service.ts b/src/carrito/carrito.service.ts index fab71ae..d08ecb4 100644 --- a/src/carrito/carrito.service.ts +++ b/src/carrito/carrito.service.ts @@ -58,7 +58,6 @@ export class CarritoService { throw new ForbiddenException( 'No puedes crear carritos para este módulo porque no pertenece a tu institución.', ); - // Creo y guardo el registro return this.repository .save( @@ -94,10 +93,7 @@ export class CarritoService { id_tipo_carrito: tipoCarrito.id_tipo_carrito, }, }) - .then((infoCarrito) => { - if (!infoCarrito) return null; - return this.viewToCarrito(infoCarrito); - }); + .then((infoCarrito) => this.viewToCarrito(infoCarrito)); } findFullInfoById(id_carrito: number) { @@ -242,7 +238,7 @@ export class CarritoService { return this.repository.save(carrito); }) .then((carrito) => { - // Creo reporte de cambio de status del carrito + // Creo reporte de desactivación del carrito if (attrs.activo === false) this.caritoMotivoService.create( carrito, @@ -256,6 +252,7 @@ export class CarritoService { } private viewToCarrito(infoCarrito: InformacionCarritoView) { + if (!infoCarrito) return null; return this.repository.create({ id_carrito: infoCarrito.id_carrito, modulo: { diff --git a/src/equipo-motivo/equipo-motivo.service.ts b/src/equipo-motivo/equipo-motivo.service.ts index 50e11ee..cf1b744 100644 --- a/src/equipo-motivo/equipo-motivo.service.ts +++ b/src/equipo-motivo/equipo-motivo.service.ts @@ -23,19 +23,11 @@ export class EquipoMotivoService { async create( equipo: Equipo, - id_operador: number | Operador, - id_status: number | Status, + operador: Operador, + status: Status, motivo: string, ) { const ahora = moment(); - const operador = - typeof id_operador === 'number' - ? await this.operadorService.findById(id_operador) - : id_operador; - const status = - typeof id_status === 'number' - ? await this.statusService.findById(id_status) - : id_status; // Creo registro y lo guardo return this.repository.save( diff --git a/src/equipo/equipo.service.ts b/src/equipo/equipo.service.ts index 765e4f1..3e8bbb8 100644 --- a/src/equipo/equipo.service.ts +++ b/src/equipo/equipo.service.ts @@ -159,37 +159,22 @@ export class EquipoService { .take(15) .skip((parseInt(filtros.pagina) - 1) * 15); - // Si se mando id modulo - if (modulo) { - // Valido que el módulo le pertenezca a la institución del - // operador que solicita la información - if ( - operador.tipoUsuario.id_tipo_usuario > 2 && - operador.institucion.id_institucion != modulo.institucion.id_institucion - ) - throw new ForbiddenException( - 'No puedes acceder a esta información porque este módulo no pertenece a tu institución.', - ); + if (operador.tipoUsuario.id_tipo_usuario > 2) + query.andWhere('m.id_institucion = :id_institucion', { + id_institucion: operador.institucion.id_institucion, + }); + else if (institucion) + query.andWhere('m.id_institucion = :id_institucion', { + id_institucion: institucion.id_institucion, + }); + if (modulo) query.andWhere('m.id_modulo = :id_modulo', { id_modulo: modulo.id_modulo, }); - } - // Si se mando id carrito - if (carrito) { - // Valido que el carrito le pertenezca a la institución del - // operador que solicita la información - if ( - operador.tipoUsuario.id_tipo_usuario > 2 && - operador.institucion.id_institucion != - carrito.modulo.institucion.id_institucion - ) - throw new ForbiddenException( - 'No puedes acceder a esta información porque este carrito no pertenece a tu institución.', - ); + if (carrito) query.andWhere('c.id_carrito = :id_carrito', { id_carrito: carrito.id_carrito, }); - } if (filtros.carrito) query.andWhere('c.carrito LIKE :carrito', { carrito: `%${filtros.carrito}%`, @@ -198,10 +183,6 @@ export class EquipoService { query.andWhere('e.equipo LIKE :equipo', { equipo: `%${filtros.equipo}%`, }); - if (institucion) - query.andWhere('m.id_institucion = :id_institucion', { - id_institucion: institucion.id_institucion, - }); if (marca) query.andWhere('ma.id_marca = :id_marca', { id_marca: marca.id_marca, @@ -248,13 +229,10 @@ export class EquipoService { }, }) .then((infoEquipo) => { - if (!infoEquipo) { - if (validarNoExiste) - throw new NotFoundException( - 'No existe un equipo de cómputo con este número de inventario.', - ); - return null; - } + if (!infoEquipo && validarNoExiste) + throw new NotFoundException( + 'No existe un equipo de cómputo con este número de inventario.', + ); return this.viewToEquipo(infoEquipo); }); } @@ -272,13 +250,10 @@ export class EquipoService { }, }) .then((infoEquipo) => { - if (!infoEquipo) { - if (validarNoExiste) - throw new NotFoundException( - 'No existe un equipo de cómputo con este número de inventario.', - ); - return null; - } + if (!infoEquipo && validarNoExiste) + throw new NotFoundException( + 'No existe un equipo de cómputo con este número de inventario.', + ); return this.viewToEquipo(infoEquipo); }); } @@ -423,26 +398,27 @@ export class EquipoService { return this.repository .createQueryBuilder() .update() + .where('id_status != 3') .set({ prestado: false }) .execute(); } - async update( + update( operador: Operador, attrs: Partial, id_carrito?: number, id_status?: number, motivo?: string, ) { - const carrito = id_carrito - ? await this.carritoService.findById(id_carrito) - : null; - const status = id_status - ? await this.statusService.findById(id_status) - : null; - return this.findById(attrs.id_equipo) .then(async (equipo) => { + const carrito = id_carrito + ? await this.carritoService.findById(id_carrito) + : null; + const status = id_status + ? await this.statusService.findById(id_status) + : null; + // Valido que el equipo pertenezca a la institución del operador // que realiza esta acción if ( @@ -463,7 +439,7 @@ export class EquipoService { // El operador no puede cambiar el status de un equipo a uno de estos if (status.id_status === 2 || status.id_status === 3) throw new ConflictException( - 'No se puede cambiar manualmente el status de un equipo a este status.', + 'No se puede cambiar manualmente el status de un equipo a apartado o en uso.', ); if (!motivo) throw new ConflictException( @@ -550,6 +526,7 @@ export class EquipoService { } private viewToEquipo(infoEquipo: InformacionEquipoView) { + if (!infoEquipo) return null; return this.repository.create({ id_equipo: infoEquipo.id_equipo, equipo: infoEquipo.equipo,