se actualizo la funcion de carga masiva y se quitaron console logs

This commit is contained in:
evenegas
2026-01-09 12:58:08 -06:00
parent bdd7b1dd9a
commit ea0dc8aba0
8 changed files with 81 additions and 98 deletions
+56 -56
View File
@@ -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),
};
}
+2 -4
View File
@@ -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
+2 -7
View File
@@ -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 {
+1 -3
View File
@@ -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<UsuarioRow[]> {
@@ -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(
+1 -2
View File
@@ -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)
})
-1
View File
@@ -50,7 +50,6 @@ export class MailService {
};
console.log(mailOptions);
+19 -21
View File
@@ -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 };
}
-4
View File
@@ -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 };