From ea0dc8aba0eedc68d5f28096f40e2d905d4f7dee Mon Sep 17 00:00:00 2001 From: evenegas Date: Fri, 9 Jan 2026 12:58:08 -0600 Subject: [PATCH] se actualizo la funcion de carga masiva y se quitaron console logs --- src/auth/auth.service.ts | 112 +++++++++++++-------------- src/auth/google-auth.guard.ts | 6 +- src/excel/excel.controller.ts | 9 +-- src/excel/excel.service.ts | 4 +- src/mail/mail.controller.ts | 3 +- src/mail/mail.service.ts | 1 - src/movimiento/movimiento.service.ts | 40 +++++----- src/usuarios/usuarios.service.ts | 4 - 8 files changed, 81 insertions(+), 98 deletions(-) diff --git a/src/auth/auth.service.ts b/src/auth/auth.service.ts index b7502fd..436daa0 100644 --- a/src/auth/auth.service.ts +++ b/src/auth/auth.service.ts @@ -41,22 +41,22 @@ export class AuthService { }; } - async updateCorreo(id:string, nombreNuevo:string){ - console.log("id: ", id, "nombre: ", nombreNuevo) - const usuarios=await this.userRepo.findOne({where:{id_usuario:id}}) - console.log(usuarios) - if(!usuarios){throw new Error("usuaro no existe")} - usuarios.correo=nombreNuevo; + async updateCorreo(id: string, nombreNuevo: string) { + + const usuarios = await this.userRepo.findOne({ where: { id_usuario: id } }) + + if (!usuarios) { throw new Error("usuaro no existe") } + usuarios.correo = nombreNuevo; return await this.userRepo.save(usuarios); } - async all(){ - - const usuarios=await this.userRepo.find() - console.log(usuarios) - + async all() { + + const usuarios = await this.userRepo.find() + + } async register(dto: RegisterDto) { @@ -94,14 +94,14 @@ export class AuthService { } - async white(dto: WhiteDto) { + async white(dto: WhiteDto) { // 1) Verificar duplicado const exists = await this.userRepo.findOne({ where: { correo: dto.email } }); if (exists) { throw new ConflictException('El correo ya está registrado'); } - + let origen = await this.origenRepo.findOne({ where: { origen: dto.origen } }); @@ -114,7 +114,7 @@ export class AuthService { // 3) Crear entidad Usuario const user = this.userRepo.create({ correo: dto.email, - contraseña:undefined, + contraseña: undefined, origen: origen, }); @@ -129,55 +129,55 @@ export class AuthService { async validateGoogleUser(email: string) { - const user = await this.userRepo.findOne({ where: { correo: email }, relations: ['origen'] }); + const user = await this.userRepo.findOne({ where: { correo: email }, relations: ['origen'] }); - if (!user) { - // No permitir crear cuenta - return null; + if (!user) { + // No permitir crear cuenta + return null; + } + + if (!user.contraseña) { + // Usuario existe pero nunca puso contraseña → permitirle definirla + return { + ...user, + needsPassword: true, + }; + } + + // Usuario con contraseña → login normal + return user; } - if (!user.contraseña) { - // Usuario existe pero nunca puso contraseña → permitirle definirla + //Poner contraseñas + // auth.service.ts + async setPassword(dto: SetPasswordDto) { + const user = await this.userRepo.findOne({ + where: { correo: dto.email }, + relations: ['origen'], + }); + + if (!user) { + throw new UnauthorizedException('Usuario no encontrado'); + } + + if (user.contraseña) { + throw new ConflictException('Este usuario ya tiene contraseña'); + } + + // Hash contraseña nueva + const hash = await bcrypt.hash(dto.password, 10); + + user.contraseña = hash; + const updated = await this.userRepo.save(user); + + // Retornar con JWT inmediato (login automático) + const payload = { sub: updated.id_usuario, email: updated.correo, tipo: updated.origen.origen }; + return { - ...user, - needsPassword: true, + access_token: this.jwtService.sign(payload), }; } - // Usuario con contraseña → login normal - return user; -} - -//Poner contraseñas -// auth.service.ts -async setPassword(dto: SetPasswordDto) { - const user = await this.userRepo.findOne({ - where: { correo: dto.email }, - relations: ['origen'], - }); - - if (!user) { - throw new UnauthorizedException('Usuario no encontrado'); - } - - if (user.contraseña) { - throw new ConflictException('Este usuario ya tiene contraseña'); - } - - // Hash contraseña nueva - const hash = await bcrypt.hash(dto.password, 10); - - user.contraseña = hash; - const updated = await this.userRepo.save(user); - - // Retornar con JWT inmediato (login automático) - const payload = { sub: updated.id_usuario, email: updated.correo, tipo: updated.origen.origen }; - - return { - access_token: this.jwtService.sign(payload), - }; -} - diff --git a/src/auth/google-auth.guard.ts b/src/auth/google-auth.guard.ts index ed8ce9e..d74a903 100644 --- a/src/auth/google-auth.guard.ts +++ b/src/auth/google-auth.guard.ts @@ -5,13 +5,11 @@ import { AuthGuard } from '@nestjs/passport'; export class GoogleAuthGuard extends AuthGuard('google') { handleRequest(err, user, info, context) { const res = context.switchToHttp().getResponse(); - console.log("usuario: ", user); - console.log("error: ", err); - console.log("info: ", info); + if (err) { // redirige directamente y corta la ejecución res.redirect(`${process.env.FRONTEND_URL}?error=oauth_failed`); - + } return user; // si existe, sigue normalmente diff --git a/src/excel/excel.controller.ts b/src/excel/excel.controller.ts index acd6f1f..47f8d40 100644 --- a/src/excel/excel.controller.ts +++ b/src/excel/excel.controller.ts @@ -37,12 +37,11 @@ export class ExcelController { private readonly movimientoService: MovimientoService, private readonly mailService: MailService, private readonly usuarioService: UsuariosService, // Asegúrate de importar el servicio de correo - ) {} + ) { } @Post('carga') async cargaUsuario(@Request() req, @Body() usuario: CreateUsuarioDto) { - console.log('Usuario recibido:', usuario); - console.log('Datos del request:', req.user); + if (req.user.origen != 'LOAD' && req.user.origen != 'EXTERNO') { throw new Error('Origen no permitido para carga'); } @@ -54,7 +53,6 @@ export class ExcelController { if (!alta) { throw new Error('No se pudo realizar la carga del usuario'); } - console.log('Alta de usuario:', alta); await this.movimientoService.updateStatus(alta.movId, 'SUCCESS'); await this.excelService.enviarInforme( @@ -154,7 +152,6 @@ export class ExcelController { return result; } - console.log(result.id_movimiento); await this.movimientoService.updateStatus( result.id_movimiento, 'SUCCESS', @@ -217,8 +214,6 @@ export class ExcelController { @ExcelDocumentation.downloadExcel() async downloadData(@Request() req, @Res() res: Response) { const origen = req.user.origen; // ahora sí existe - console.log('Origen de descarga:', origen); - console.log('Usuario:', req.user); if (origen == 'SOLICITA') { try { diff --git a/src/excel/excel.service.ts b/src/excel/excel.service.ts index 1f6e50b..a0b68fa 100644 --- a/src/excel/excel.service.ts +++ b/src/excel/excel.service.ts @@ -58,7 +58,7 @@ export class ExcelService { private readonly dataSource: DataSource, // … inyecta otros repositorios si los usarás - ) {} + ) { } /** Lee el buffer del Excel y devuelve un arreglo de filas tipadas */ private async parseFile(buffer: Buffer): Promise { @@ -672,7 +672,6 @@ export class ExcelService { .join('\n'); const tablaCompleta = header + rows; - console.log('rows:', rows); return tablaCompleta; } @@ -877,7 +876,6 @@ export class ExcelService { `Se ha realizado una carga de usuarios en el sistema. Nuevos: ${data?.nuevos ?? 0}, Actualizados: ${data?.actualizados ?? 0}`, ); - console.log(`Correo enviados`); } async enviarInforme( diff --git a/src/mail/mail.controller.ts b/src/mail/mail.controller.ts index bae8558..4a5df20 100644 --- a/src/mail/mail.controller.ts +++ b/src/mail/mail.controller.ts @@ -15,11 +15,10 @@ export class MailController { const result = await this.mailService.sendMail(body) .then((value) => { - console.log("Se mandaron los correos", value); }) .catch((err) => { - console.log(err) + throw new Error(err) }) diff --git a/src/mail/mail.service.ts b/src/mail/mail.service.ts index 8b0a898..9c2bccd 100644 --- a/src/mail/mail.service.ts +++ b/src/mail/mail.service.ts @@ -50,7 +50,6 @@ export class MailService { }; - console.log(mailOptions); diff --git a/src/movimiento/movimiento.service.ts b/src/movimiento/movimiento.service.ts index 7211e31..8e555f5 100644 --- a/src/movimiento/movimiento.service.ts +++ b/src/movimiento/movimiento.service.ts @@ -101,27 +101,27 @@ export class MovimientoService { ): Promise<{ move: any[]; button: boolean; total?: number; lastPage?: number }> { if (origen === 'LOAD') { - const [movimientos, total] = await this.movRepo.findAndCount({ - where: { - origen: { origen: 'LOAD' }, - status: 'SUCCESS', - reporte: 'CARGA MASIVA DE USUARIOS', - }, - skip: (page - 1) * limit, - take: limit, - order: { fecha_mov: 'DESC' }, // opcional - }); + const [movimientos, total] = await this.movRepo.findAndCount({ + where: { + origen: { origen: 'LOAD' }, + status: 'SUCCESS', + reporte: 'CARGA MASIVA DE USUARIOS', + }, + skip: (page - 1) * limit, + take: limit, + order: { fecha_mov: 'DESC' }, // opcional + }); - // si quieres incluir también mov y mov2 en la misma paginación: - // const todosLosMovimientos = [...movimientos, ...mov, ...mov2]; (y luego slice) + // si quieres incluir también mov y mov2 en la misma paginación: + // const todosLosMovimientos = [...movimientos, ...mov, ...mov2]; (y luego slice) - return { - move: movimientos, - button: false, - total, - lastPage: Math.ceil(total / limit), - }; - } + return { + move: movimientos, + button: false, + total, + lastPage: Math.ceil(total / limit), + }; + } const statusFieldMap = { AT: 'ATStatus', RED: 'RedStatus', @@ -169,13 +169,11 @@ export class MovimientoService { }, }); - console.log('movimientos:', mov2) const todosLosMovimientos = [...movimientos, ...mov, ...mov2]; - console.log(todosLosMovimientos) return { move: todosLosMovimientos, button: false }; } diff --git a/src/usuarios/usuarios.service.ts b/src/usuarios/usuarios.service.ts index 9cdf92a..545a68d 100644 --- a/src/usuarios/usuarios.service.ts +++ b/src/usuarios/usuarios.service.ts @@ -378,7 +378,6 @@ export class UsuariosService { origen: string, user: string, ) { - console.log('Iniciando carga individual para usuario:', usuario); const queryRunner = this.usuarioRepository.manager.connection.createQueryRunner(); await queryRunner.connect(); @@ -425,7 +424,6 @@ export class UsuariosService { where: { carrera: '' }, }); } - console.log(carrera); } else { carrera = await queryRunner.manager.findOne(Carrera, { where: { carrera: '' }, @@ -452,7 +450,6 @@ export class UsuariosService { contraseña: usuario.contraseña ?? null, // Asegúrate de manejar la contraseña adecuadamente }); - console.log(nuevo); const savedUser = await queryRunner.manager.save(nuevo); @@ -611,7 +608,6 @@ export class UsuariosService { break; } - console.log(savedUser); await queryRunner.commitTransaction(); return { saved: savedUser, movId: mov.id_mov, at, correo, red, solicita };