From f62a868b97c038041abc527827bbf76071e8f74b Mon Sep 17 00:00:00 2001 From: Tyrannusss Date: Thu, 27 Nov 2025 17:32:14 -0600 Subject: [PATCH] cambios --- src/auth/auth.service.ts | 3 ++- src/main.ts | 10 ++++++++++ src/servicio/dto/update-servicio.dto.ts | 3 +++ src/servicio/servicio.controller.ts | 2 ++ src/usuario/usuario.controller.ts | 2 +- src/usuario/usuario.service.ts | 10 +++++++--- 6 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/auth/auth.service.ts b/src/auth/auth.service.ts index b21f504..d91be9e 100644 --- a/src/auth/auth.service.ts +++ b/src/auth/auth.service.ts @@ -56,7 +56,8 @@ export class AuthService { } async encriptar(password) { - return await bcrypt.hash(password); + const saltRounds = 10; + return await bcrypt.hash(password,saltRounds); } async generarPassword() { diff --git a/src/main.ts b/src/main.ts index e014ffe..17479ef 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,9 +1,19 @@ import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; +import { ValidationPipe } from '@nestjs/common'; async function bootstrap() { const app = await NestFactory.create(AppModule); + app.useGlobalPipes( + new ValidationPipe({ + whitelist: true, // elimina propiedades que no existan en el DTO + transform: true, // permite que @Type() funcione + transformOptions: { enableImplicitConversion: true }, // convierte strings → number/date + }), + ); + + app.enableCors(); await app.listen(process.env.APP_PORT ?? 3000); console.log( diff --git a/src/servicio/dto/update-servicio.dto.ts b/src/servicio/dto/update-servicio.dto.ts index 061c606..c356c58 100644 --- a/src/servicio/dto/update-servicio.dto.ts +++ b/src/servicio/dto/update-servicio.dto.ts @@ -19,14 +19,17 @@ export class UpdateServicioDto { @IsOptional() @IsDateString({}, { message: 'fechaInicio debe ser una fecha válida' }) + //@Type(() => Date) fechaInicio?: Date; @IsOptional() @IsDateString({}, { message: 'fechaFin debe ser una fecha válida' }) + //@Type(() => Date) fechaFin?: Date; @IsOptional() @IsDateString({}, { message: 'fechaNacimiento debe ser una fecha válida' }) + //@Type(() => Date) fechaNacimiento?: Date; @IsOptional() diff --git a/src/servicio/servicio.controller.ts b/src/servicio/servicio.controller.ts index 1acf0ea..ccf15b0 100644 --- a/src/servicio/servicio.controller.ts +++ b/src/servicio/servicio.controller.ts @@ -174,6 +174,8 @@ export class ServicioController { @Body('data') dataJson: string, ) { const data = JSON.parse(dataJson); + return this.servicioService.update(data, files); } } + \ No newline at end of file diff --git a/src/usuario/usuario.controller.ts b/src/usuario/usuario.controller.ts index 63bb139..c20f66c 100644 --- a/src/usuario/usuario.controller.ts +++ b/src/usuario/usuario.controller.ts @@ -41,7 +41,7 @@ export class UsuarioController { } @Post('new-password-alumno/:idServicio') - @UseGuards(AuthGuard('jwt')) + //@UseGuards(AuthGuard('jwt')) async newPasswordAlumno( @Param('idServicio', ParseIntPipe) idServicio: number, ) { diff --git a/src/usuario/usuario.service.ts b/src/usuario/usuario.service.ts index 63b981d..9bae1d0 100644 --- a/src/usuario/usuario.service.ts +++ b/src/usuario/usuario.service.ts @@ -145,7 +145,7 @@ export class UsuarioService { } async newPasswordAlumno(idServicio: number) { - const password = this.authService.generarPassword(); + const password = await this.authService.generarPassword(); // Buscar el servicio junto con el usuario const servicio = await this.servicioRepo.findOne({ @@ -164,6 +164,7 @@ export class UsuarioService { } // Preparar correo + const { preRegistro } = require('../helpers.services/msjCorreos'); let correo = preRegistro(password, usuario.nombre); // Enviar correo @@ -184,10 +185,10 @@ export class UsuarioService { } async newPasswordResponsable(idUsuario: number) { - const password = this.authService.generarPassword(); + const password = await this.authService.generarPassword(); // Buscar usuario - const usuario = await this.userRepo.findOne({ where: { idUsuario } }); + const usuario = await this.userRepo.findOne({ where: { idUsuario },relations: ['tipoUsuario'] }); if (!usuario) { throw new NotFoundException('No existe este Usuario.'); @@ -197,7 +198,10 @@ export class UsuarioService { throw new BadRequestException('Este usuario no es de tipo responsable.'); } + // Preparar correo + const { enviarSec } = require('../helpers.services/msjCorreos'); + const correo = enviarSec(password, usuario.usuario, usuario.nombre); // Enviar correo