diff --git a/src/app.module.ts b/src/app.module.ts index 6ca9b8f..8a7c53c 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -66,7 +66,7 @@ import { Usuario } from './usuario/entity/usuario.entity'; database: configService.get('DB'), username: configService.get('DB_USER'), password: configService.get('DB_PASSWORD'), - port: Number(configService.get('DB_PORT')), + port: parseInt(configService.get('DB_PORT')), synchronize: true, entities: [ Carrera, diff --git a/src/auth/auth.service.ts b/src/auth/auth.service.ts index d0fa199..57d761b 100644 --- a/src/auth/auth.service.ts +++ b/src/auth/auth.service.ts @@ -23,8 +23,11 @@ export class AuthService { validate() {} loginAdmin(admin: string, password: string) { - return this.operadorService.findByAdmin(admin, false).then((operador) => { - if (!operador || !this.bcryptService.comparar(password, operador.password)) + return this.operadorService.findAdmin(admin, false).then((operador) => { + if ( + !operador || + !this.bcryptService.comparar(password, operador.password) + ) throw new UnauthorizedException( 'Usuario y/o password incorrectos, trata de nuevo.', ); @@ -51,7 +54,7 @@ export class AuthService { const modulo = await this.moduloService.findById(id_modulo); return this.operadorService - .findByOperador(operador, id_institucion) + .findByOperador(id_institucion, operador) .then((operador) => { if ( !operador || diff --git a/src/bcrypt/bcrypt.service.ts b/src/bcrypt/bcrypt.service.ts index 8b487f8..44202a2 100644 --- a/src/bcrypt/bcrypt.service.ts +++ b/src/bcrypt/bcrypt.service.ts @@ -8,7 +8,7 @@ export class BcryptService { encriptar(password: string) { const salt = bcrypt.genSaltSync( - Number(this.configService.get('SALT_ROUNDS')), + parseInt(this.configService.get('SALT_ROUNDS')), ); return bcrypt.hashSync(password, salt); diff --git a/src/carrera/carrera.service.ts b/src/carrera/carrera.service.ts index 5548ecc..2a06c5e 100644 --- a/src/carrera/carrera.service.ts +++ b/src/carrera/carrera.service.ts @@ -20,9 +20,9 @@ export class CarreraService { }); } - findByCarrera(carrera: string, noExisteValidar = true) { + findByCarrera(carrera: string, validarNoExiste = true) { return this.repository.findOne({ carrera }).then((carrera) => { - if (noExisteValidar && !carrera) + if (validarNoExiste && !carrera) throw new NotFoundException('No existe esta carrera.'); return carrera; }); diff --git a/src/carrito/carrito.controller.ts b/src/carrito/carrito.controller.ts index e167350..293848e 100644 --- a/src/carrito/carrito.controller.ts +++ b/src/carrito/carrito.controller.ts @@ -26,7 +26,7 @@ export class CarritoController { @Get('carrito') carrito(@Query() query: CarritoDto) { - return this.carritoService.findById(Number(query.id_carrito)); + return this.carritoService.findById(parseInt(query.id_carrito)); } @Get('carritos') diff --git a/src/carrito/carrito.service.ts b/src/carrito/carrito.service.ts index e58ca42..8563a62 100644 --- a/src/carrito/carrito.service.ts +++ b/src/carrito/carrito.service.ts @@ -74,10 +74,10 @@ export class CarritoService { } = {} const modulo = filtros.id_modulo - ? await this.moduloService.findById(Number(filtros.id_modulo)) + ? await this.moduloService.findById(parseInt(filtros.id_modulo)) : null; const institucionTipoCarrito = filtros.id_tipo_carrito - ? await this.institucionTipoCarritoService.findById(Number(filtros.id_tipo_carrito)) + ? await this.institucionTipoCarritoService.findById(parseInt(filtros.id_tipo_carrito)) : null if (filtros.activo) busqueda.activo = filtros.activo; diff --git a/src/equipo/equipo.controller.ts b/src/equipo/equipo.controller.ts index cbb56db..a7c8904 100644 --- a/src/equipo/equipo.controller.ts +++ b/src/equipo/equipo.controller.ts @@ -19,7 +19,7 @@ export class EquipoController { @Get('equipo') equipo(@Query() query: EquipoDto) { - return this.equipoService.findById(Number(query.id_equipo)); + return this.equipoService.findById(parseInt(query.id_equipo)); } // Terminar uwu diff --git a/src/institucion-carrera/institucion-carrera.controller.ts b/src/institucion-carrera/institucion-carrera.controller.ts index e05be19..832e971 100644 --- a/src/institucion-carrera/institucion-carrera.controller.ts +++ b/src/institucion-carrera/institucion-carrera.controller.ts @@ -9,7 +9,7 @@ export class InstitucionCarreraController { @Get() get(@Query() query: InstitucionCarreraDto) { return this.institucionCarreraService.findAllByIdInstitucion( - Number(query.id_institucion), + parseInt(query.id_institucion), ); } } diff --git a/src/institucion-dia/institucion-dia.controller.ts b/src/institucion-dia/institucion-dia.controller.ts index 839d129..6e57a7e 100644 --- a/src/institucion-dia/institucion-dia.controller.ts +++ b/src/institucion-dia/institucion-dia.controller.ts @@ -17,7 +17,7 @@ export class InstitucionDiaController { @Get('instituciones_dias') institucionesDias(@Query() query: IdInstitucionDto) { return this.institucionDiaService.findAllByIdInstitucion( - Number(query.id_institucion), + parseInt(query.id_institucion), ); } diff --git a/src/institucion-infraccion/institucion-infraccion.controller.ts b/src/institucion-infraccion/institucion-infraccion.controller.ts index ed599a5..269ae75 100644 --- a/src/institucion-infraccion/institucion-infraccion.controller.ts +++ b/src/institucion-infraccion/institucion-infraccion.controller.ts @@ -25,7 +25,7 @@ export class InstitucionInfraccionController { @Get('institucion_infracciones') institucionInfracciones(@Query() query: IdInstitucionDto) { return this.institucionInfraccionService.findAllByIdInstitucion( - Number(query.id_institucion), + parseInt(query.id_institucion), ); } diff --git a/src/institucion-tipo-carrito/institucion-tipo-carrito.controller.ts b/src/institucion-tipo-carrito/institucion-tipo-carrito.controller.ts index dd44a09..8afed19 100644 --- a/src/institucion-tipo-carrito/institucion-tipo-carrito.controller.ts +++ b/src/institucion-tipo-carrito/institucion-tipo-carrito.controller.ts @@ -28,14 +28,14 @@ export class InstitucionTipoCarritoController { @Get('institucion_tipos_carritos') institucionTiposCarritos(@Query() query: IdInstitucionDto) { return this.institucionTipoCarritoService.findAllByIdInstitucion( - Number(query.id_institucion), + parseInt(query.id_institucion), ); } @Get('institucion_tipos_carritos_mostar') institucionTiposCarritosMostrar(@Query() query: IdInstitucionDto) { return this.institucionTipoCarritoService.findAllByIdInstitucionMostar( - Number(query.id_institucion), + parseInt(query.id_institucion), ); } diff --git a/src/institucion/institucion.controller.ts b/src/institucion/institucion.controller.ts index 00db265..d2c7978 100644 --- a/src/institucion/institucion.controller.ts +++ b/src/institucion/institucion.controller.ts @@ -17,7 +17,7 @@ export class InstitucionController { @Get('institucion') institucion(@Query() query: IdInstitucionDto) { - return this.institucionService.findById(Number(query.id_institucion)); + return this.institucionService.findById(parseInt(query.id_institucion)); } @Put() diff --git a/src/modulo/modulo.controller.ts b/src/modulo/modulo.controller.ts index 7f81c90..c7709fb 100644 --- a/src/modulo/modulo.controller.ts +++ b/src/modulo/modulo.controller.ts @@ -24,7 +24,7 @@ export class ModuloController { @Get('modulos') modulos(@Query() query: IdInstitucionDto) { return this.moduloService.findAllByIdInstitucion( - Number(query.id_institucion), + parseInt(query.id_institucion), ); } diff --git a/src/motivo/motivo.controller.ts b/src/motivo/motivo.controller.ts index 4d4c0f8..c90e614 100644 --- a/src/motivo/motivo.controller.ts +++ b/src/motivo/motivo.controller.ts @@ -10,7 +10,7 @@ export class MotivoController { @Get() get(@Query() query: MotivoDto) { - return this.motivoService.findAllIdEquipo(Number(query.id_equipo)); + return this.motivoService.findAllIdEquipo(parseInt(query.id_equipo)); } @Get('reporte') diff --git a/src/operador/dto/operador-create.dto.ts b/src/operador/dto/operador-create.dto.ts index 2b7d147..9b7854e 100644 --- a/src/operador/dto/operador-create.dto.ts +++ b/src/operador/dto/operador-create.dto.ts @@ -4,6 +4,9 @@ export class OperadorCreateDto { @IsInt() id_institucion: number; + @IsInt() + id_tipo_usuario: number; + @IsString() operador: string; diff --git a/src/operador/dto/operador-operadores.dto.ts b/src/operador/dto/operador-operadores.dto.ts index 3d7e83d..049b89e 100644 --- a/src/operador/dto/operador-operadores.dto.ts +++ b/src/operador/dto/operador-operadores.dto.ts @@ -8,6 +8,10 @@ export class OperadorOperadoresDto { @IsOptional() id_institucion?: string; + @IsNumberString() + @IsOptional() + id_tipo_usuario: string; + @IsString() @IsOptional() operador?: string; diff --git a/src/operador/dto/operador-update.dto.ts b/src/operador/dto/operador-update.dto.ts index f979fdb..15a59a9 100644 --- a/src/operador/dto/operador-update.dto.ts +++ b/src/operador/dto/operador-update.dto.ts @@ -8,10 +8,6 @@ export class OperadorUpdateDto { @IsOptional() activo?: boolean; - // @IsString() - // @IsOptional() - // operador?: string; - @IsString() @IsOptional() password?: string; diff --git a/src/operador/operador.controller.ts b/src/operador/operador.controller.ts index 10159d4..5a3027c 100644 --- a/src/operador/operador.controller.ts +++ b/src/operador/operador.controller.ts @@ -4,17 +4,21 @@ import { OperadorCreateDto } from './dto/operador-create.dto'; import { OperadorOperadoresDto } from './dto/operador-operadores.dto'; import { OperadorUpdateDto } from './dto/operador-update.dto'; import { OperadorDto } from './dto/operador.dto'; -import {ApiTags} from '@nestjs/swagger' +import { ApiTags } from '@nestjs/swagger'; @Controller('operador') @ApiTags('operador') export class OperadorController { constructor(private operadorService: OperadorService) {} + @Get('admins') + admins() {} + @Post() create(@Body() body: OperadorCreateDto) { return this.operadorService.create( body.id_institucion, + body.id_tipo_usuario, body.operador, body.password, ); @@ -22,7 +26,7 @@ export class OperadorController { @Get('operador') operador(@Query() query: OperadorDto) { - return this.operadorService.findById(Number(query.id_operador)); + return this.operadorService.findById(parseInt(query.id_operador)); } @Get('operadores') @@ -30,8 +34,8 @@ export class OperadorController { return this.operadorService.findAll(query); } - @Get('reporte') - reporte() {} + // @Get('reporte') + // reporte() {} @Put() update(@Body() body: OperadorUpdateDto) { diff --git a/src/operador/operador.service.ts b/src/operador/operador.service.ts index 888ff9f..44e8b14 100644 --- a/src/operador/operador.service.ts +++ b/src/operador/operador.service.ts @@ -4,9 +4,10 @@ import { NotFoundException, } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; -import { Between, Repository } from 'typeorm'; -import { Operador } from './entity/operador.entity'; +import { Between, FindOperator, Like, Repository } from 'typeorm'; import { Institucion } from '../institucion/entity/institucion.entity'; +import { Operador } from './entity/operador.entity'; +import { TipoUsuario } from 'src/tipo-usuario/entity/tipo-usuario.entity'; import { BcryptService } from '../bcrypt/bcrypt.service'; import { InstitucionService } from '../institucion/institucion.service'; import { TipoUsuarioService } from '../tipo-usuario/tipo-usuario.service'; @@ -20,12 +21,16 @@ export class OperadorService { private tipoUsuarioService: TipoUsuarioService, ) {} - async create(id_institucion: number, operador: string, password: string) { + async create( + id_institucion: number, + id_tipo_usuario: number, + operador: string, + password: string, + ) { const institucion = await this.institucionService.findById(id_institucion); - const tipoUsuario = await this.tipoUsuarioService.findById(4); + const tipoUsuario = await this.tipoUsuarioService.findById(id_tipo_usuario); - return this.repository - .findOne({ operador, institucion }) + return this.findByOperador(institucion, operador, false) .then(async (existeOperador) => { if (existeOperador) throw new ConflictException( @@ -44,38 +49,54 @@ export class OperadorService { .then((_) => ({ message: 'Se creo correctamente al operador.' })); } - async findAll(filtros: { - pagina: string; - id_institucion?: string; - operador?: string; - }) { - const busqueda: { operador?: string; institucion?: Institucion } = {}; - const institucion = filtros.id_institucion - ? await this.institucionService.findById(Number(filtros.id_institucion)) - : null; - - /* buscar like */ - if (filtros.operador) busqueda.operador = filtros.operador; - if (institucion) busqueda.institucion = institucion; - /* falta página */ - return this.repository.find(busqueda); - } - - findByAdmin(admin: string, noExisteValidar = true) { + findAdmin(admin: string, validarNoExiste = true) { return this.repository .findOne({ - where: { - operador: admin, - tipoUsuario: { id_tipo_usuario: Between(2, 3) }, - }, + operador: admin, + tipoUsuario: { id_tipo_usuario: Between(2, 3) }, }) .then((admin) => { - if (noExisteValidar && !admin) + if (validarNoExiste && !admin) throw new NotFoundException('No existe este admin.'); return admin; }); } + async findAll(filtros: { + pagina: string; + id_institucion?: string; + id_tipo_usuario?: string; + operador?: string; + }) { + const busqueda: { + where: { + institucion?: Institucion; + operador?: FindOperator; + tipoUsuario?: TipoUsuario; + }; + skip; + take; + } = { + where: {}, + skip: (parseInt(filtros.pagina) - 1) * 25, + take: 25, + }; + const institucion = filtros.id_institucion + ? await this.institucionService.findById(parseInt(filtros.id_institucion)) + : null; + const tipoUsuario = filtros.id_tipo_usuario + ? await this.tipoUsuarioService.findById( + parseInt(filtros.id_tipo_usuario), + ) + : null; + + if (filtros.operador) + busqueda.where.operador = Like(`${filtros.operador}%`); + if (institucion) busqueda.where.institucion = institucion; + if (tipoUsuario) busqueda.where.tipoUsuario = tipoUsuario; + return this.repository.find(busqueda); + } + findById(id_operador: number) { return this.repository.findOne({ id_operador }).then((operador) => { if (!operador) throw new NotFoundException('No existe este operador'); @@ -83,16 +104,20 @@ export class OperadorService { }); } - findByOperador( + async findByOperador( + id_institucion: number | Institucion, operador: string, - id_institucion: number, - noExisteValidar = true, + validarNoExiste = true, ) { - return this.institucionService - .findById(id_institucion) - .then((institucion) => this.repository.findOne({ institucion, operador })) + const institucion = + typeof id_institucion === 'number' + ? await this.institucionService.findById(id_institucion) + : id_institucion; + + return this.repository + .findOne({ institucion, operador }) .then((operador) => { - if (noExisteValidar && !operador) + if (validarNoExiste && !operador) throw new NotFoundException('No existe este operador.'); return operador; }); diff --git a/src/programa/programa.controller.ts b/src/programa/programa.controller.ts index d04647e..a94899b 100644 --- a/src/programa/programa.controller.ts +++ b/src/programa/programa.controller.ts @@ -21,6 +21,6 @@ export class ProgramaController { @Get('programa') programa(@Query() query: ProgramaDto) { - return this.programaService.findById(Number(query.id_programa)) + return this.programaService.findById(parseInt(query.id_programa)) } } diff --git a/src/tipo-usuario/tipo-usuario.service.ts b/src/tipo-usuario/tipo-usuario.service.ts index f384adf..ea37a4d 100644 --- a/src/tipo-usuario/tipo-usuario.service.ts +++ b/src/tipo-usuario/tipo-usuario.service.ts @@ -36,9 +36,9 @@ export class TipoUsuarioService { }); } - findByTipoUsuario(tipo_usuario: string, noExisteValidar = true) { + findByTipoUsuario(tipo_usuario: string, validarNoExiste = true) { return this.repository.findOne({ tipo_usuario }).then((tipoUsuario) => { - if (noExisteValidar && !tipoUsuario) + if (validarNoExiste && !tipoUsuario) throw new NotFoundException('No existe este tipo usuairo'); return tipoUsuario; }); diff --git a/src/upload-file/upload-file.controller.ts b/src/upload-file/upload-file.controller.ts index 49419b0..100adaa 100644 --- a/src/upload-file/upload-file.controller.ts +++ b/src/upload-file/upload-file.controller.ts @@ -25,7 +25,7 @@ export class UploadFileController { ) { return this.uploadFileService.createEquipos( file, - Number(query.id_institucion), + parseInt(query.id_institucion), ); } @@ -37,13 +37,13 @@ export class UploadFileController { ) { return this.uploadFileService.createUsuarios( file, - Number(query.id_institucion), + parseInt(query.id_institucion), ); } @Get('download-logo') downloadLogo(@Response() res, @Query() query: IdInstitucionDto) { - return this.uploadFileService.downloadLogo(Number(query.id_institucion)); + return this.uploadFileService.downloadLogo(parseInt(query.id_institucion)); } @Get('download-plantilla-equipos') @@ -62,6 +62,6 @@ export class UploadFileController { @UploadedFile() file: Express.Multer.File, @Query() query: IdInstitucionDto, ) { - this.uploadFileService.uploadLogo(file, Number(query.id_institucion)); + this.uploadFileService.uploadLogo(file, parseInt(query.id_institucion)); } } diff --git a/src/usuario/usuario.controller.ts b/src/usuario/usuario.controller.ts index 8074bb8..78932ef 100644 --- a/src/usuario/usuario.controller.ts +++ b/src/usuario/usuario.controller.ts @@ -46,7 +46,7 @@ export class UsuarioController { @Get('usuario') @UseGuards(AuthGuard('jwt')) usuario(@Query() query: UsuarioDto) { - return this.usuarioService.findById(Number(query.id_usuario)); + return this.usuarioService.findById(parseInt(query.id_usuario)); } @Get('usuarios') diff --git a/src/usuario/usuario.service.ts b/src/usuario/usuario.service.ts index 1e8e479..d1599a7 100644 --- a/src/usuario/usuario.service.ts +++ b/src/usuario/usuario.service.ts @@ -94,13 +94,13 @@ export class UsuarioService { usuario?: string; } = {}; const institucion = filtros.id_institucion - ? await this.institucionService.findById(Number(filtros.id_institucion)) + ? await this.institucionService.findById(parseInt(filtros.id_institucion)) : null; const tipoUsuario = filtros.id_tipo_usuario - ? await this.tipoUsuarioService.findById(Number(filtros.id_tipo_usuario)) + ? await this.tipoUsuarioService.findById(parseInt(filtros.id_tipo_usuario)) : null; const carrera = filtros.id_carrera - ? await this.carreraService.findById(Number(filtros.id_carrera)) + ? await this.carreraService.findById(parseInt(filtros.id_carrera)) : null; /* buscar usnado like */ @@ -112,17 +112,17 @@ export class UsuarioService { return this.repository.find(busqueda); } - findById(id_usuario: number, noExisteValidar = true, password = false) { + findById(id_usuario: number, validarNoExiste = true, password = false) { return this.repository.findOne({ id_usuario }).then((usuario) => { - if (noExisteValidar && (!usuario || (password && !usuario.password))) + if (validarNoExiste && (!usuario || (password && !usuario.password))) throw new NotFoundException('No existe este usuario.'); return usuario; }); } - findByUsuario(usuario: string, noExisteValidar = true, password = false) { + findByUsuario(usuario: string, validarNoExiste = true, password = false) { return this.repository.findOne({ usuario }).then((usuario) => { - if (noExisteValidar && (!usuario || (password && !usuario.password))) + if (validarNoExiste && (!usuario || (password && !usuario.password))) throw new NotFoundException('No existe este usuario.'); return usuario; });