diff --git a/src/alumnos/alumnos.module.ts b/src/alumnos/alumnos.module.ts index d5f26ba..9a4935d 100644 --- a/src/alumnos/alumnos.module.ts +++ b/src/alumnos/alumnos.module.ts @@ -3,21 +3,48 @@ import { TypeOrmModule } from '@nestjs/typeorm'; import { AlumnosController } from './alumnos.controller'; import { AlumnosService } from './alumnos.service'; import { RegistroAlumno } from './entities/registro-alumno.entity'; +import { ConfigService } from '@nestjs/config'; @Module({ imports: [ TypeOrmModule.forFeature([RegistroAlumno], 'alumnosConnection'), - TypeOrmModule.forRoot({ + + + TypeOrmModule.forRootAsync({ + name: 'alumnosConnection', + useFactory: (configService: ConfigService) => ({ + type: 'mysql', + host: configService.get('ALUMNOS_DB_HOST'), + port: Number(configService.get('ALUMNOS_DB_PORT')), + username: configService.get('ALUMNOS_DB_USERNAME'), + password: configService.get('ALUMNOS_DB_PASSWORD'), + database: configService.get('ALUMNOS_DB_DATABASE'), + entities: [RegistroAlumno], + synchronize: false, + retryAttempts: 10, + retryDelay: 3000, + connectTimeout: 30000, + }), + inject: [ConfigService], + }), + + + /* TypeOrmModule.forRoot({ name: 'alumnosConnection', type: 'mysql', - host: process.env.ALUMNOS_DB_HOST || 'mariadb', - port: parseInt(process.env.ALUMNOS_DB_PORT || '3306'), - username: process.env.ALUMNOS_DB_USERNAME || 'alumnosuser', - password: process.env.ALUMNOS_DB_PASSWORD || 'alumnospass', - database: process.env.ALUMNOS_DB_DATABASE || 'datos_feria_registro', + host: process.env.ALUMNOS_DB_HOST , + port: Number(process.env.ALUMNOS_DB_PORT), + username: process.env.ALUMNOS_DB_USERNAME , + password: process.env.ALUMNOS_DB_PASSWORD , + database: process.env.ALUMNOS_DB_DATABASE , entities: [RegistroAlumno], synchronize: false, - }), + + retryAttempts: 10, // Intentos para reconectar + retryDelay: 3000, // Tiempo entre reintentos + connectTimeout: 30000, // Timeout de conexión (30 segundos) │ │ + + }), */ ], controllers: [AlumnosController], providers: [AlumnosService], diff --git a/src/app.module.ts b/src/app.module.ts index 78b893c..8b95158 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -29,7 +29,9 @@ import { AlumnosModule } from './alumnos/alumnos.module'; @Module({ imports: [ - ConfigModule.forRoot(), + ConfigModule.forRoot({ + isGlobal: true, + }), TypeOrmModule.forRoot({ type: 'mysql', diff --git a/src/validaciones/validador.ts b/src/validaciones/validador.ts index 1ca4be1..4f7e69b 100644 --- a/src/validaciones/validador.ts +++ b/src/validaciones/validador.ts @@ -99,6 +99,9 @@ export class ValidadorTelefono extends Validador { // Clase para validar nombres export class ValidadorNombre extends Validador { validar(valor: string): ResultadoValidacion { + const regex = new RegExp( + '/^[A-Za-zÁÉÍÓÚáéíóúÑñ]+(?: [A-Za-zÁÉÍÓÚáéíóúÑñ]+)*$/' + ); if (!valor) { return { valido: false, @@ -115,7 +118,7 @@ export class ValidadorNombre extends Validador { } // Verificar que solo contenga letras y espacios - if (!/^[a-zA-ZáéíóúÁÉÍÓÚñÑüÜ\\s]+$/.test(valor)) { + if (regex.test(valor)) { return { valido: false, mensaje: 'El nombre solo debe contener letras y espacios'