diff --git a/src/auth/auth.service.ts b/src/auth/auth.service.ts index b8199e1..4d504c1 100644 --- a/src/auth/auth.service.ts +++ b/src/auth/auth.service.ts @@ -62,12 +62,6 @@ export class AuthService { id_tipo_usuario: usuario.tipoUsuario.id_tipo_usuario, }; - for (let i = 0; i < usuario.instituciones.length; i++) - if (!usuario.instituciones[i].activo) - usuario.instituciones.splice( - usuario.instituciones.indexOf(usuario.instituciones[i--]), - 1, - ); return { usuario, token: this.jwtService.sign(payload) }; }); } diff --git a/src/institucion-infraccion/dto/output/institucion-infraccion.dto.ts b/src/institucion-infraccion/dto/output/institucion-infraccion.dto.ts index c5cfb1f..35873d1 100644 --- a/src/institucion-infraccion/dto/output/institucion-infraccion.dto.ts +++ b/src/institucion-infraccion/dto/output/institucion-infraccion.dto.ts @@ -1,5 +1,6 @@ import { Expose, Type } from 'class-transformer'; import { InfraccionOutputDto } from './infraccion.dto'; +import { InstitucionMinOutputDto } from '../../../institucion/dto/output/institucion-min.dto'; export class InstitucionInfraccionOutputDto { @Expose() @@ -11,4 +12,8 @@ export class InstitucionInfraccionOutputDto { @Expose() @Type(() => InfraccionOutputDto) infraccion; + + @Expose() + @Type(() => InstitucionMinOutputDto) + institucion; } diff --git a/src/institucion-usuario/dto/output/institucion-usuario-min.dto.ts b/src/institucion-usuario/dto/output/institucion-usuario-min.dto.ts deleted file mode 100644 index 14667f2..0000000 --- a/src/institucion-usuario/dto/output/institucion-usuario-min.dto.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Expose, Type } from 'class-transformer'; -import { InstitucionCarreaOutputDto } from '../../../institucion-carrera/dto/output/institucion-carrera.dto'; - -export class InstitucionUsuarioMinOutputDto { - @Expose() - id_institucion_usuario; - - @Expose() - @Type(() => InstitucionCarreaOutputDto) - institucionCarrera; -} diff --git a/src/institucion-usuario/dto/output/usuario-institucion-carrera.dto.ts b/src/institucion-usuario/dto/output/usuario-institucion-carrera.dto.ts index be661e2..32b1b0d 100644 --- a/src/institucion-usuario/dto/output/usuario-institucion-carrera.dto.ts +++ b/src/institucion-usuario/dto/output/usuario-institucion-carrera.dto.ts @@ -6,6 +6,12 @@ export class UsuarioInstitucionCarreraOutputDto { @Expose() id_institucion_usuario; + @Expose() + activo; + + @Expose() + multa; + @Expose() @Type(() => InstitucionCarreaOutputDto) institucionCarrera; diff --git a/src/multa/dto/output/multas-min.dto.ts b/src/multa/dto/output/multas-min.dto.ts index c116b64..32a83a7 100644 --- a/src/multa/dto/output/multas-min.dto.ts +++ b/src/multa/dto/output/multas-min.dto.ts @@ -1,7 +1,5 @@ import { Expose, Type } from 'class-transformer'; import { InstitucionInfraccionOutputDto } from '../../../institucion-infraccion/dto/output/institucion-infraccion.dto'; -import { OperadorMinOutputDto } from '../../../operador/dto/output/operador-min.dto'; -import { PrestamoMinOutputDto } from '../../../prestamo/dto/output/prestamo-min.dto'; export class MultasMinOutputDto { @Expose() diff --git a/src/multa/multa.controller.ts b/src/multa/multa.controller.ts index 82f0fb8..4176dd8 100644 --- a/src/multa/multa.controller.ts +++ b/src/multa/multa.controller.ts @@ -90,7 +90,7 @@ export class MultaController { @Serealize(MultasMinOutputDto) @Get('multas-usuario-activas') @ApiOperation({ - description: 'Endpoint que retorna todas las multas de un usuario .', + description: 'Endpoint que retorna todas las multas de un usuario que esten activas.', }) @ApiQuery({ description: 'Id del usuario.', diff --git a/src/multa/multa.service.ts b/src/multa/multa.service.ts index 02e482c..76af916 100644 --- a/src/multa/multa.service.ts +++ b/src/multa/multa.service.ts @@ -138,7 +138,7 @@ export class MultaService { const query = this.repository .createQueryBuilder('mu') .innerJoinAndSelect('mu.institucionInfraccion', 'ii') - .innerJoinAndSelect('ii.infraccion', 'in') + .innerJoinAndSelect('ii.infraccion', 'inf') .innerJoinAndSelect('mu.opeardorMulta', 'om') .innerJoinAndSelect('om.tipoUsuario', 'tu') .innerJoinAndSelect('mu.prestamo', 'p') @@ -178,7 +178,8 @@ export class MultaService { this.repository .createQueryBuilder('mu') .innerJoinAndSelect('mu.institucionInfraccion', 'ii') - .innerJoinAndSelect('ii.infraccion', 'in') + .innerJoinAndSelect('ii.infraccion', 'inf') + .innerJoinAndSelect('ii.institucion', 'i') .innerJoinAndSelect('mu.opeardorMulta', 'om') .innerJoinAndSelect('om.tipoUsuario', 'tu') .innerJoinAndSelect('mu.prestamo', 'p') @@ -193,7 +194,8 @@ export class MultaService { .innerJoinAndSelect('ca.nivel', 'n') .orderBy('mu.id_multa', 'DESC') .skip((pagina - 1) * 25) - .take(25), + .take(25) + .getManyAndCount(), ); } @@ -202,30 +204,38 @@ export class MultaService { this.repository .createQueryBuilder('mu') .innerJoinAndSelect('mu.institucionInfraccion', 'ii') - .innerJoinAndSelect('ii.infraccion', 'in') + .innerJoinAndSelect('ii.infraccion', 'inf') + .innerJoinAndSelect('ii.institucion', 'i') .innerJoinAndSelect('mu.opeardorMulta', 'om') .innerJoinAndSelect('om.tipoUsuario', 'tu') .innerJoinAndSelect('mu.prestamo', 'p') .innerJoinAndSelect('p.equipo', 'e') .innerJoinAndSelect('e.carrito', 'c') .innerJoinAndSelect('c.modulo', 'm') - .innerJoinAndSelect('m.institucion', 'i') + .innerJoinAndSelect('m.institucion', 'in') .innerJoinAndSelect('c.tipoCarrito', 'tc') .innerJoinAndSelect('p.usuario', 'u', 'u.id_usuario = :id_usuario', { id_usuario: usuario.id_usuario, }) .orderBy('mu.id_multa', 'DESC') .skip((pagina - 1) * 25) - .take(25), + .take(25) + .getManyAndCount(), ); } findMultasActivas(id_usuario: number) { return this.usuarioService.findById(id_usuario).then((usuario) => - this.repository.find({ - join: { alias: 'mu', innerJoin: { p: 'mu.prestamo' } }, - where: { activo: true, prestamo: { usuario } }, - }), + this.repository + .createQueryBuilder('mu') + .innerJoin('mu.prestamo', 'p') + .innerJoin('p.usuario', 'u', 'u.id_usuario = :id_usuario', { + id_usuario: usuario.id_usuario, + }) + .innerJoinAndSelect('mu.institucionInfraccion', 'ii') + .innerJoinAndSelect('ii.institucion', 'i') + .andWhere('mu.activo = 1') + .getMany(), ); } }