From fb5ebec04e135cbcc23fe0d2a658e4798253d423 Mon Sep 17 00:00:00 2001 From: xXpuma99Xx <51341582+xXpuma99Xx@users.noreply.github.com> Date: Tue, 14 Jun 2022 15:39:13 -0500 Subject: [PATCH] prestamo output dto --- src/equipo/dto/output/equipo-min.dto.ts | 32 ++++++++++++ src/operador/dto/output/operador-min.dto.ts | 19 +++++++ .../dto/output/prestamo-activo.dto.ts | 40 +++++++++++++++ .../dto/output/prestamo-equipo.dto.ts | 44 +++++++++++++++++ .../dto/output/prestamo-usuario.dto.ts | 35 +++++++++++++ src/prestamo/dto/output/prestamo.dto.ts | 49 +++++++++++++++++++ src/prestamo/entity/prestamo.entity.ts | 2 +- src/prestamo/prestamo.controller.ts | 13 +++++ src/prestamo/prestamo.service.ts | 4 +- 9 files changed, 235 insertions(+), 3 deletions(-) create mode 100644 src/equipo/dto/output/equipo-min.dto.ts create mode 100644 src/operador/dto/output/operador-min.dto.ts create mode 100644 src/prestamo/dto/output/prestamo-activo.dto.ts create mode 100644 src/prestamo/dto/output/prestamo-equipo.dto.ts create mode 100644 src/prestamo/dto/output/prestamo-usuario.dto.ts create mode 100644 src/prestamo/dto/output/prestamo.dto.ts diff --git a/src/equipo/dto/output/equipo-min.dto.ts b/src/equipo/dto/output/equipo-min.dto.ts new file mode 100644 index 0000000..fc8a001 --- /dev/null +++ b/src/equipo/dto/output/equipo-min.dto.ts @@ -0,0 +1,32 @@ +import { Expose, Type } from 'class-transformer'; +import { CarritoMinOutputDto } from '../../../carrito/dto/output/carrito-min.dto'; +import { StatusOutputDto } from '../../../status/dto/output/status.dto'; +import { EquipoTipoEntradaOutputDto } from '../../../equipo-tipo-entrada/dto/output/equipo-tipo-entrada.dto'; +import { EquipoProgramaOutputDto } from '../../../equipo-programa/dto/output/equipo-programa.dto'; + +export class EquipoMinOutputDto { + @Expose() + equipo; + + @Expose() + id_equipo; + + @Expose() + numero_inventario; + + @Expose() + @Type(() => CarritoMinOutputDto) + carrito; + + @Expose() + @Type(() => EquipoProgramaOutputDto) + programas; + + @Expose() + @Type(() => StatusOutputDto) + status; + + @Expose() + @Type(() => EquipoTipoEntradaOutputDto) + tiposEntradas; +} diff --git a/src/operador/dto/output/operador-min.dto.ts b/src/operador/dto/output/operador-min.dto.ts new file mode 100644 index 0000000..cd32b3a --- /dev/null +++ b/src/operador/dto/output/operador-min.dto.ts @@ -0,0 +1,19 @@ +import { Expose, Type } from 'class-transformer'; +import { InstitucionMinOutputDto } from '../../../institucion/dto/output/institucion-min.dto'; +import { TipoUsuarioOutputDto } from '../../../tipo-usuario/dto/output/tipo-usuario.dto'; + +export class OperadorMinsOutputDto { + @Expose() + id_operador; + + @Expose() + operador; + + @Expose() + @Type(() => InstitucionMinOutputDto) + institucion; + + @Expose() + @Type(() => TipoUsuarioOutputDto) + tipoUsuario; +} diff --git a/src/prestamo/dto/output/prestamo-activo.dto.ts b/src/prestamo/dto/output/prestamo-activo.dto.ts new file mode 100644 index 0000000..d4ad07b --- /dev/null +++ b/src/prestamo/dto/output/prestamo-activo.dto.ts @@ -0,0 +1,40 @@ +import { Expose, Type } from 'class-transformer'; +import { EquiposOutputDto } from '../../../equipo/dto/output/equipos.dto'; +import { UsuariosOutputDto } from '../../../usuario/dto/output/usuarios.dto'; + +export class PrestamoActivoOutputDto { + @Expose() + activo; + + @Expose() + cancelado_operador; + + @Expose() + cancelado_usuario; + + @Expose() + fecha_entrega; + + @Expose() + fecha_inicio; + + @Expose() + hora_fin; + + @Expose() + hora_inicio; + + @Expose() + hora_max_recoger; + + @Expose() + id_prestamo; + + @Expose() + @Type(() => EquiposOutputDto) + equipo; + + @Expose() + @Type(() => UsuariosOutputDto) + usuario; +} diff --git a/src/prestamo/dto/output/prestamo-equipo.dto.ts b/src/prestamo/dto/output/prestamo-equipo.dto.ts new file mode 100644 index 0000000..2f35377 --- /dev/null +++ b/src/prestamo/dto/output/prestamo-equipo.dto.ts @@ -0,0 +1,44 @@ +import { Expose, Type } from 'class-transformer'; +import { OperadorMinsOutputDto } from '../../../operador/dto/output/operador-min.dto'; +import { UsuariosOutputDto } from '../../../usuario/dto/output/usuarios.dto'; + +export class PrestamoEquipoOutputDto { + @Expose() + activo; + + @Expose() + cancelado_operador; + + @Expose() + cancelado_usuario; + + @Expose() + fecha_entrega; + + @Expose() + fecha_inicio; + + @Expose() + hora_fin; + + @Expose() + hora_inicio; + + @Expose() + hora_max_recoger; + + @Expose() + id_prestamo; + + @Expose() + @Type(() => OperadorMinsOutputDto) + operadorEntrega; + + @Expose() + @Type(() => OperadorMinsOutputDto) + operadorRegreso; + + @Expose() + @Type(() => UsuariosOutputDto) + usuario; +} diff --git a/src/prestamo/dto/output/prestamo-usuario.dto.ts b/src/prestamo/dto/output/prestamo-usuario.dto.ts new file mode 100644 index 0000000..79544a2 --- /dev/null +++ b/src/prestamo/dto/output/prestamo-usuario.dto.ts @@ -0,0 +1,35 @@ +import { Expose, Type } from 'class-transformer'; +import { EquipoMinOutputDto } from '../../../equipo/dto/output/equipo-min.dto'; + +export class PrestamoUsuarioOutputDto { + @Expose() + activo; + + @Expose() + cancelado_operador; + + @Expose() + cancelado_usuario; + + @Expose() + fecha_entrega; + + @Expose() + fecha_inicio; + + @Expose() + hora_fin; + + @Expose() + hora_inicio; + + @Expose() + hora_max_recoger; + + @Expose() + id_prestamo; + + @Expose() + @Type(() => EquipoMinOutputDto) + equipo; +} diff --git a/src/prestamo/dto/output/prestamo.dto.ts b/src/prestamo/dto/output/prestamo.dto.ts new file mode 100644 index 0000000..d79be43 --- /dev/null +++ b/src/prestamo/dto/output/prestamo.dto.ts @@ -0,0 +1,49 @@ +import { Expose, Type } from 'class-transformer'; +import { EquipoMinOutputDto } from '../../../equipo/dto/output/equipo-min.dto'; +import { OperadorMinsOutputDto } from '../../../operador/dto/output/operador-min.dto'; +import { UsuariosOutputDto } from '../../../usuario/dto/output/usuarios.dto'; + +export class PrestamoOutputDto { + @Expose() + activo; + + @Expose() + cancelado_operador; + + @Expose() + cancelado_usuario; + + @Expose() + fecha_entrega; + + @Expose() + fecha_inicio; + + @Expose() + hora_fin; + + @Expose() + hora_inicio; + + @Expose() + hora_max_recoger; + + @Expose() + id_prestamo; + + @Expose() + @Type(() => EquipoMinOutputDto) + equipo; + + @Expose() + @Type(() => OperadorMinsOutputDto) + operadorEntrega; + + @Expose() + @Type(() => OperadorMinsOutputDto) + operadorRegreso; + + @Expose() + @Type(() => UsuariosOutputDto) + usuario; +} diff --git a/src/prestamo/entity/prestamo.entity.ts b/src/prestamo/entity/prestamo.entity.ts index 90d031b..ebed6b6 100644 --- a/src/prestamo/entity/prestamo.entity.ts +++ b/src/prestamo/entity/prestamo.entity.ts @@ -58,7 +58,7 @@ export class Prestamo { @JoinColumn({ name: 'id_operador_regreso' }) operadorRegreso: Operador; - @ManyToOne(() => Usuario, (usuario) => usuario.prestamos) + @ManyToOne(() => Usuario, (usuario) => usuario.prestamos, { eager: true }) @JoinColumn({ name: 'id_usuario' }) usuario: Usuario; } diff --git a/src/prestamo/prestamo.controller.ts b/src/prestamo/prestamo.controller.ts index 76d55d7..303d72f 100644 --- a/src/prestamo/prestamo.controller.ts +++ b/src/prestamo/prestamo.controller.ts @@ -1,5 +1,6 @@ import { Body, Controller, Get, Post, Put, Query } from '@nestjs/common'; import { ApiBody, ApiOperation, ApiQuery, ApiTags } from '@nestjs/swagger'; +import { Serealize } from '../interceptors/serialize.interceptor'; import { PrestamoService } from './prestamo.service'; import { PedirDto } from './dto/input/pedir.dto'; import { ActivosDto } from './dto/input/activos.dto'; @@ -11,12 +12,17 @@ import { HistorialEquipoDto } from './dto/input/historial-equipo.dto'; import { HistorialUsuarioDto } from './dto/input/historial-usuario.dto'; import { UpdateOperadorDto } from './dto/input/update-operador.dto'; import { CancelarUsuarioDto } from './dto/input/cancelar-usuario.dto'; +import { PrestamoOutputDto } from './dto/output/prestamo.dto'; +import { PrestamoActivoOutputDto } from './dto/output/prestamo-activo.dto'; +import { PrestamoUsuarioOutputDto } from './dto/output/prestamo-usuario.dto'; +import { PrestamoEquipoOutputDto } from './dto/output/prestamo-equipo.dto'; @Controller('prestamo') @ApiTags('prestamo') export class PrestamoController { constructor(private prestamoService: PrestamoService) {} + @Serealize(PrestamoActivoOutputDto) @Get('activos') @ApiOperation({ description: @@ -118,6 +124,7 @@ export class PrestamoController { return this.prestamoService.entregar(body.id_prestamo, body.id_operador); } + @Serealize(PrestamoOutputDto) @Get('historial') @ApiOperation({ description: @@ -192,6 +199,7 @@ export class PrestamoController { return this.prestamoService.findAll(query); } + @Serealize(PrestamoEquipoOutputDto) @Get('historial-equipo') @ApiOperation({ description: @@ -214,6 +222,7 @@ export class PrestamoController { ); } + @Serealize(PrestamoUsuarioOutputDto) @Get('historial-usuario') @ApiOperation({ description: @@ -236,6 +245,7 @@ export class PrestamoController { ); } + @Serealize(PrestamoUsuarioOutputDto) @Post() @ApiOperation({ description: 'Endpoint que crea un prestamo nuevo.' }) @ApiBody({ @@ -263,6 +273,7 @@ export class PrestamoController { ); } + @Serealize(PrestamoOutputDto) @Get('prestamo-id-prestamo') @ApiOperation({ description: 'Endpoint que retorna un préstamo por su id.' }) @ApiQuery({ description: '', name: '', type: '' }) @@ -270,6 +281,7 @@ export class PrestamoController { return this.prestamoService.findById(parseInt(query.id_prestamo)); } + @Serealize(PrestamoUsuarioOutputDto) @Get('prestamo-id-usuario') @ApiOperation({ description: @@ -284,6 +296,7 @@ export class PrestamoController { return this.prestamoService.findByIdUsuario(parseInt(query.id_usuario)); } + @Serealize(PrestamoEquipoOutputDto) @Get('prestamo-numero-inventario') @ApiOperation({ description: diff --git a/src/prestamo/prestamo.service.ts b/src/prestamo/prestamo.service.ts index 9c695a6..304a3c4 100644 --- a/src/prestamo/prestamo.service.ts +++ b/src/prestamo/prestamo.service.ts @@ -312,7 +312,7 @@ export class PrestamoService { return this.usuarioService .findById(id_usuario, true, true) .then((usuario) => - this.repository.find({ + this.repository.findAndCount({ where: { usuario }, skip: (pagina - 1) * 25, take: 25, @@ -322,7 +322,7 @@ export class PrestamoService { async findAllByIdEquipo(id_equipo: number, pagina: number) { return this.equipoService.findById(id_equipo).then((equipo) => - this.repository.find({ + this.repository.findAndCount({ where: { equipo }, skip: (pagina - 1) * 25, take: 25,