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'; import { IsNumberString } from 'class-validator';
export class MultaUsuarioDto { export class MultasUsuarioDto {
@IsNumberString() @IsNumberString()
id_usuario: string; 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 { export class MultasDto {
@IsNumberString() @IsNumberString()
@ -7,4 +7,8 @@ export class MultasDto {
@IsNumberString() @IsNumberString()
@IsOptional() @IsOptional()
id_institucion?: string; 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 { MultaService } from './multa.service';
import { IdEquipoPaginaDto } from '../dto/id-equipo-pagina.dto'; import { IdEquipoPaginaDto } from '../dto/id-equipo-pagina.dto';
import { MultasDto } from './dto/input/multas.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') @Controller('multa')
@ApiTags('multa') @ApiTags('multa')
export class MultaController { export class MultaController {
constructor(private multaService: MultaService) {} constructor(private multaService: MultaService) {}
@Serealize(MultasOutputDto)
@Get() @Get()
@ApiOperation({ @ApiOperation({
description: 'Endpoint que retorna todas las multas de una institución.', description:
}) 'Endpoint que retorna 25 multas dependiendo de la página en la que este el usuario y sus filtros.',
@ApiQuery({
description: 'Id de la institución.',
name: 'id_institucion',
type: 'string',
}) })
@ApiQuery({ @ApiQuery({
description: 'Página en la que se encuentra el usuario.', description: 'Página en la que se encuentra el usuario.',
name: 'pagina', name: 'pagina',
type: 'string', 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) { multas(@Query() query: MultasDto) {
return this.multaService.findAll(query); return this.multaService.findAll(query);
} }
@Serealize(MultasEquipoOutputDto)
@Get('multas-equipo') @Get('multas-equipo')
@ApiOperation({ @ApiOperation({
description: 'Endpoint que retorna todas las multas de un equipo.', description: 'Endpoint que retorna todas las multas de un equipo.',
@ -50,6 +63,7 @@ export class MultaController {
); );
} }
@Serealize(MultasUsuarioOutputDto)
@Get('multas-usuario') @Get('multas-usuario')
@ApiOperation({ @ApiOperation({
description: 'Endpoint que retorna todas las multas de un usuario .', description: 'Endpoint que retorna todas las multas de un usuario .',
@ -64,7 +78,12 @@ export class MultaController {
name: 'pagina', name: 'pagina',
type: 'string', type: 'string',
}) })
multasUsuario(@Query() query: MultaUsuarioDto) {} multasUsuario(@Query() query: MultasUsuarioDto) {
return this.multaService.findAllByIdUsuario(
parseInt(query.id_usuario),
parseInt(query.pagina),
);
}
// @Get('reporte') // @Get('reporte')
// reporte() {} // reporte() {}

View File

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