From 8204119ed999784d9da5ba0b5a24d6e893997782 Mon Sep 17 00:00:00 2001 From: xXpuma99Xx <51341582+xXpuma99Xx@users.noreply.github.com> Date: Thu, 2 Jun 2022 10:42:53 -0500 Subject: [PATCH] multa a medias --- .../id-equipo-pagina.dto.ts} | 2 +- src/motivo/motivo.controller.ts | 4 +- src/multa/dto/multa-intitucion.dto.ts | 9 +++ src/multa/dto/multa-usuario.dto.ts | 9 +++ src/multa/multa.controller.ts | 72 ++++++++++++++++--- src/multa/multa.module.ts | 4 +- src/multa/multa.service.ts | 38 ++++++++-- 7 files changed, 120 insertions(+), 18 deletions(-) rename src/{motivo/dto/motivo.dto.ts => dto/id-equipo-pagina.dto.ts} (80%) create mode 100644 src/multa/dto/multa-intitucion.dto.ts create mode 100644 src/multa/dto/multa-usuario.dto.ts diff --git a/src/motivo/dto/motivo.dto.ts b/src/dto/id-equipo-pagina.dto.ts similarity index 80% rename from src/motivo/dto/motivo.dto.ts rename to src/dto/id-equipo-pagina.dto.ts index db6d553..7ac14d5 100644 --- a/src/motivo/dto/motivo.dto.ts +++ b/src/dto/id-equipo-pagina.dto.ts @@ -1,6 +1,6 @@ import { IsNumberString } from 'class-validator'; -export class MotivoDto { +export class IdEquipoPaginaDto { @IsNumberString() id_equipo: string; diff --git a/src/motivo/motivo.controller.ts b/src/motivo/motivo.controller.ts index 467b87a..c731816 100644 --- a/src/motivo/motivo.controller.ts +++ b/src/motivo/motivo.controller.ts @@ -1,7 +1,7 @@ import { Controller, Get, Query } from '@nestjs/common'; import { ApiOperation, ApiQuery, ApiTags } from '@nestjs/swagger'; import { MotivoService } from './motivo.service'; -import { MotivoDto } from './dto/motivo.dto'; +import { IdEquipoPaginaDto } from '../dto/id-equipo-pagina.dto'; @Controller('motivo') @ApiTags('motivo') @@ -18,7 +18,7 @@ export class MotivoController { name: 'id_equipo', type: 'string', }) - get(@Query() query: MotivoDto) { + get(@Query() query: IdEquipoPaginaDto) { return this.motivoService.findAllByIdEquipo( parseInt(query.id_equipo), parseInt(query.pagina), diff --git a/src/multa/dto/multa-intitucion.dto.ts b/src/multa/dto/multa-intitucion.dto.ts new file mode 100644 index 0000000..b89ceee --- /dev/null +++ b/src/multa/dto/multa-intitucion.dto.ts @@ -0,0 +1,9 @@ +import { IsNumberString } from 'class-validator'; + +export class MultaInstitucionDto { + @IsNumberString() + id_institucion: string; + + @IsNumberString() + pagina: string; +} diff --git a/src/multa/dto/multa-usuario.dto.ts b/src/multa/dto/multa-usuario.dto.ts new file mode 100644 index 0000000..1409191 --- /dev/null +++ b/src/multa/dto/multa-usuario.dto.ts @@ -0,0 +1,9 @@ +import { IsNumberString } from 'class-validator'; + +export class MultaUsuarioDto { + @IsNumberString() + id_usuario: string; + + @IsNumberString() + pagina: string; +} diff --git a/src/multa/multa.controller.ts b/src/multa/multa.controller.ts index 8474b9b..7539430 100644 --- a/src/multa/multa.controller.ts +++ b/src/multa/multa.controller.ts @@ -1,21 +1,73 @@ -import { Controller, Get } from '@nestjs/common'; +import { Controller, Get, Query } from '@nestjs/common'; +import { ApiOperation, ApiQuery, ApiTags } from '@nestjs/swagger'; import { MultaService } from './multa.service'; -import {ApiTags} from '@nestjs/swagger' +import { IdEquipoPaginaDto } from '../dto/id-equipo-pagina.dto'; +import { MultaInstitucionDto } from './dto/multa-intitucion.dto'; +import { MultaUsuarioDto } from './dto/multa-usuario.dto'; @Controller('multa') -// @ApiTags('multa') +@ApiTags('multa') export class MultaController { constructor(private multaService: MultaService) {} @Get() - multas() {} + @ApiOperation({ + description: 'Endpoint que retorna todas las multas de una institución.', + }) + @ApiQuery({ + description: 'Id de la institución.', + name: 'id_institucion', + type: 'string', + }) + @ApiQuery({ + description: 'Página en la que se encuentra el usuario.', + name: 'pagina', + type: 'string', + }) + multas(@Query() query: MultaInstitucionDto) { + return this.multaService.findAllByIdInstitucion( + parseInt(query.id_institucion), + parseInt(query.pagina), + ); + } - @Get('multas_usuario') - multasUsuario() {} + @Get('multas-equipo') + @ApiOperation({ + description: 'Endpoint que retorna todas las multas de un equipo.', + }) + @ApiQuery({ + description: 'Id del equipo.', + name: 'id_equipo', + type: 'string', + }) + @ApiQuery({ + description: 'Página en la que se encuentra el usuario', + name: 'pagina', + type: 'string', + }) + multasEquipo(@Query() query: IdEquipoPaginaDto) { + return this.multaService.findAllByIdEquipo( + parseInt(query.id_equipo), + parseInt(query.pagina), + ); + } - @Get('multas_equipo') - multasEquipo() {} + @Get('multas-usuario') + @ApiOperation({ + description: 'Endpoint que retorna todas las multas de un usuario .', + }) + @ApiQuery({ + description: 'Id del usuario.', + name: 'id_usuario', + type: 'string', + }) + @ApiQuery({ + description: 'Página en la que se encuentra el usuario', + name: 'pagina', + type: 'string', + }) + multasUsuario(@Query() query: MultaUsuarioDto) {} - @Get('reporte') - reporte() {} + // @Get('reporte') + // reporte() {} } diff --git a/src/multa/multa.module.ts b/src/multa/multa.module.ts index 27c3cdd..b2cc546 100644 --- a/src/multa/multa.module.ts +++ b/src/multa/multa.module.ts @@ -4,6 +4,7 @@ import { MultaController } from './multa.controller'; import { MultaService } from './multa.service'; import { Multa } from './entity/multa.entity'; import { EquipoModule } from '../equipo/equipo.module'; +import { InstitucionModule } from '../institucion/institucion.module'; import { InstitucionInfraccionModule } from '../institucion-infraccion/institucion-infraccion.module'; import { OperadorModule } from '../operador/operador.module'; import { PrestamoModule } from '../prestamo/prestamo.module'; @@ -11,11 +12,12 @@ import { UsuarioModule } from '../usuario/usuario.module'; @Module({ imports: [ - TypeOrmModule.forFeature([Multa]), EquipoModule, + InstitucionModule, InstitucionInfraccionModule, OperadorModule, PrestamoModule, + TypeOrmModule.forFeature([Multa]), UsuarioModule, ], controllers: [MultaController], diff --git a/src/multa/multa.service.ts b/src/multa/multa.service.ts index 1108472..9577f79 100644 --- a/src/multa/multa.service.ts +++ b/src/multa/multa.service.ts @@ -6,6 +6,7 @@ import { InstitucionInfraccion } from '../institucion-infraccion/entity/instituc import { Multa } from './entity/multa.entity'; import { Prestamo } from '../prestamo/entity/prestamo.entity'; import { EquipoService } from '../equipo/equipo.service'; +import { InstitucionService } from '../institucion/institucion.service'; import { InstitucionInfraccionService } from '../institucion-infraccion/institucion-infraccion.service'; import { OperadorService } from '../operador/operador.service'; import { PrestamoService } from '../prestamo/prestamo.service'; @@ -16,7 +17,8 @@ export class MultaService { constructor( @InjectRepository(Multa) private repository: Repository, private equipoService: EquipoService, - private InstitucionInfraccionService: InstitucionInfraccionService, + private institucionService: InstitucionService, + private institucionInfraccionService: InstitucionInfraccionService, private operadorService: OperadorService, private prestamoService: PrestamoService, private usuarioService: UsuarioService, @@ -31,7 +33,7 @@ export class MultaService { const prestamo = await this.prestamoService.findById(id_prestamo); const operador = await this.operadorService.findById(id_operador); const institucionInfraccion = id_institucion_infraccion - ? await this.InstitucionInfraccionService.findById( + ? await this.institucionInfraccionService.findById( id_institucion_infraccion, ) : null; @@ -52,7 +54,35 @@ export class MultaService { if (institucionInfraccion) data.institucionInfraccion; } - findAllByIdUsuario(id_usuario: number) {} + findAllByIdInstitucion(id_institucion: number, pagina: number) { + return this.institucionService + .findById(id_institucion) + .then((institucion) => + this.repository.findAndCount({ + where: {}, + skip: (pagina - 1) * 25, + take: 25, + }), + ); + } - findAllByIdEquipo(id_eqipo: number) {} + findAllByIdEquipo(id_equipo: number, pagina: number) { + return this.equipoService.findById(id_equipo).then((equipo) => + this.repository.findAndCount({ + where: { prestamo: { equipo } }, + skip: (pagina - 1) * 25, + take: 25, + }), + ); + } + + findAllByIdUsuario(id_usuario: number, pagina: number) { + return this.usuarioService.findById(id_usuario).then((usuario) => + this.repository.findAndCount({ + where: { prestamo: { usuario } }, + skip: (pagina - 1) * 25, + take: 25, + }), + ); + } }