multas output dto

This commit is contained in:
xXpuma99Xx 2022-06-14 22:16:43 -05:00
parent bc0fa5e3af
commit 61f813cb94
10 changed files with 223 additions and 13 deletions

View File

@ -1,6 +1,6 @@
import { IsNumberString } from 'class-validator';
export class MultaUsuarioDto {
export class MultasUsuarioDto {
@IsNumberString()
id_usuario: string;

View File

@ -1,4 +1,4 @@
import { IsNumberString, IsOptional } from 'class-validator';
import { IsNumberString, IsOptional, IsString } from 'class-validator';
export class MultasDto {
@IsNumberString()
@ -7,4 +7,8 @@ export class MultasDto {
@IsNumberString()
@IsOptional()
id_institucion?: string;
@IsString()
@IsOptional()
usuario?: string;
}

View File

@ -0,0 +1,36 @@
import { Expose, Type } from 'class-transformer';
import { InstitucionInfraccionOutputDto } from '../../../institucion-infraccion/dto/output/institucion-infraccion.dto';
import { PrestamoMinEquipoOutputDto } from '../../../prestamo/dto/output/prestamo-min-equipo.dto';
import { OperadorMinsOutputDto } from '../../../operador/dto/output/operador-min.dto';
export class MultasEquipoOutputDto {
@Expose()
activo;
@Expose()
descripcion;
@Expose()
fecha_fin;
@Expose()
fecha_inicio;
@Expose()
id_multa;
@Expose()
retraso;
@Expose()
@Type(() => OperadorMinsOutputDto)
opeardorMulta;
@Expose()
@Type(() => PrestamoMinEquipoOutputDto)
prestamo;
@Expose()
@Type(() => InstitucionInfraccionOutputDto)
institucionInfraccion;
}

View File

@ -0,0 +1,36 @@
import { Expose, Type } from 'class-transformer';
import { InstitucionInfraccionOutputDto } from '../../../institucion-infraccion/dto/output/institucion-infraccion.dto';
import { PrestamoMinUsuarioOutputDto } from '../../../prestamo/dto/output/prestamo-min-usuario.dto';
import { OperadorMinsOutputDto } from '../../../operador/dto/output/operador-min.dto';
export class MultasUsuarioOutputDto {
@Expose()
activo;
@Expose()
descripcion;
@Expose()
fecha_fin;
@Expose()
fecha_inicio;
@Expose()
id_multa;
@Expose()
retraso;
@Expose()
@Type(() => OperadorMinsOutputDto)
opeardorMulta;
@Expose()
@Type(() => PrestamoMinUsuarioOutputDto)
prestamo;
@Expose()
@Type(() => InstitucionInfraccionOutputDto)
institucionInfraccion;
}

View File

@ -0,0 +1,36 @@
import { Expose, Type } from 'class-transformer';
import { InstitucionInfraccionOutputDto } from '../../../institucion-infraccion/dto/output/institucion-infraccion.dto';
import { PrestamoMinOutputDto } from '../../../prestamo/dto/output/prestamo-min.dto';
import { OperadorMinsOutputDto } from '../../../operador/dto/output/operador-min.dto';
export class MultasOutputDto {
@Expose()
activo;
@Expose()
descripcion;
@Expose()
fecha_fin;
@Expose()
fecha_inicio;
@Expose()
id_multa;
@Expose()
retraso;
@Expose()
@Type(() => OperadorMinsOutputDto)
opeardorMulta;
@Expose()
@Type(() => PrestamoMinOutputDto)
prestamo;
@Expose()
@Type(() => InstitucionInfraccionOutputDto)
institucionInfraccion;
}

View File

@ -4,31 +4,44 @@ import { Serealize } from '../interceptors/serialize.interceptor';
import { MultaService } from './multa.service';
import { IdEquipoPaginaDto } from '../dto/id-equipo-pagina.dto';
import { MultasDto } from './dto/input/multas.dto';
import { MultaUsuarioDto } from './dto/input/usuario.dto';
import { MultasUsuarioDto } from './dto/input/multas-usuario.dto';
import { MultasOutputDto } from './dto/output/multas.dto';
import { MultasEquipoOutputDto } from './dto/output/multas-equipo.dto';
import { MultasUsuarioOutputDto } from './dto/output/multas-usuario.dto';
@Controller('multa')
@ApiTags('multa')
export class MultaController {
constructor(private multaService: MultaService) {}
@Serealize(MultasOutputDto)
@Get()
@ApiOperation({
description: 'Endpoint que retorna todas las multas de una institución.',
})
@ApiQuery({
description: 'Id de la institución.',
name: 'id_institucion',
type: 'string',
description:
'Endpoint que retorna 25 multas dependiendo de la página en la que este el usuario y sus filtros.',
})
@ApiQuery({
description: 'Página en la que se encuentra el usuario.',
name: 'pagina',
type: 'string',
})
@ApiQuery({
description: 'Id de la institución.',
name: 'id_institucion',
type: 'string',
required: false,
})
@ApiQuery({
description: 'Usuario que se quiere usar como filtro.',
name: 'usuario',
type: 'string',
required: false,
})
multas(@Query() query: MultasDto) {
return this.multaService.findAll(query);
}
@Serealize(MultasEquipoOutputDto)
@Get('multas-equipo')
@ApiOperation({
description: 'Endpoint que retorna todas las multas de un equipo.',
@ -50,6 +63,7 @@ export class MultaController {
);
}
@Serealize(MultasUsuarioOutputDto)
@Get('multas-usuario')
@ApiOperation({
description: 'Endpoint que retorna todas las multas de un usuario .',
@ -64,7 +78,12 @@ export class MultaController {
name: 'pagina',
type: 'string',
})
multasUsuario(@Query() query: MultaUsuarioDto) {}
multasUsuario(@Query() query: MultasUsuarioDto) {
return this.multaService.findAllByIdUsuario(
parseInt(query.id_usuario),
parseInt(query.pagina),
);
}
// @Get('reporte')
// reporte() {}

View File

@ -120,6 +120,10 @@ export class MultaService {
c: 'e.carrito',
m: 'c.modulo',
i: 'm.institucion',
u: 'p.usuario',
ci: 'u.institucionCarrera',
ca: 'ci.carrera',
n: 'ca.nivel',
},
},
where: busqueda,
@ -136,9 +140,10 @@ export class MultaService {
innerJoinAndSelect: {
p: 'mu.prestamo',
e: 'p.equipo',
c: 'e.carrito',
m: 'c.modulo',
i: 'm.institucion',
u: 'p.usuario',
ci: 'u.institucionCarrera',
ca: 'ci.carrera',
n: 'ca.nivel',
},
},
where: { prestamo: { equipo } },

View File

@ -0,0 +1,23 @@
import { Expose, Type } from 'class-transformer';
import { UsuariosOutputDto } from '../../../usuario/dto/output/usuarios.dto';
export class PrestamoMinEquipoOutputDto {
@Expose()
fecha_entrega;
@Expose()
fecha_inicio;
@Expose()
hora_fin;
@Expose()
hora_inicio;
@Expose()
id_prestamo;
@Expose()
@Type(() => UsuariosOutputDto)
usuario;
}

View File

@ -0,0 +1,23 @@
import { Expose, Type } from 'class-transformer';
import { EquipoMinOutputDto } from '../../../equipo/dto/output/equipo-min.dto';
export class PrestamoMinUsuarioOutputDto {
@Expose()
fecha_entrega;
@Expose()
fecha_inicio;
@Expose()
hora_fin;
@Expose()
hora_inicio;
@Expose()
id_prestamo;
@Expose()
@Type(() => EquipoMinOutputDto)
equipo;
}

View File

@ -0,0 +1,28 @@
import { Expose, Type } from 'class-transformer';
import { EquipoMinOutputDto } from '../../../equipo/dto/output/equipo-min.dto';
import { UsuariosOutputDto } from '../../../usuario/dto/output/usuarios.dto';
export class PrestamoMinOutputDto {
@Expose()
fecha_entrega;
@Expose()
fecha_inicio;
@Expose()
hora_fin;
@Expose()
hora_inicio;
@Expose()
id_prestamo;
@Expose()
@Type(() => EquipoMinOutputDto)
equipo;
@Expose()
@Type(() => UsuariosOutputDto)
usuario;
}