added error

This commit is contained in:
2025-10-29 17:16:27 -06:00
parent 3a3e145642
commit dbd3657acb
6 changed files with 52 additions and 3 deletions
@@ -1,6 +1,7 @@
import { Controller, Get, Post, Body, Param } from '@nestjs/common';
import { AlumnoInscritoService } from './alumno_inscrito.service';
import { AlumnoInscrito } from 'src/database/AT/entities/alumno_inscrito.entity';
import { CreateAlumnoInscritoDto } from './dto/create-alumno_inscrito.dto';
@Controller('alumno-inscrito')
export class AlumnoInscritoController {
@@ -3,10 +3,12 @@ import { AlumnoInscritoService } from './alumno_inscrito.service';
import { AlumnoInscritoController } from './alumno_inscrito.controller';
import { TypeOrmModule } from '@nestjs/typeorm';
import { AlumnoInscrito } from 'src/database/AT/entities/alumno_inscrito.entity';
import { Periodo } from 'src/database/AT/entities/periodo.entity';
@Module({
imports: [TypeOrmModule.forFeature([AlumnoInscrito], 'dbAT')],
imports: [TypeOrmModule.forFeature([AlumnoInscrito, Periodo], 'dbAT')],
controllers: [AlumnoInscritoController],
providers: [AlumnoInscritoService],
exports: [AlumnoInscritoService],
})
export class AlumnoInscritoModule {}
@@ -1,13 +1,17 @@
import { Injectable } from '@nestjs/common';
import { BadRequestException, Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { AlumnoInscrito } from 'src/database/AT/entities/alumno_inscrito.entity';
import { CreateAlumnoInscritoDto } from './dto/create-alumno_inscrito.dto';
import { Periodo } from 'src/database/AT/entities/periodo.entity';
@Injectable()
export class AlumnoInscritoService {
constructor(
@InjectRepository(AlumnoInscrito, 'dbAT')
private readonly alumnoInscritoRepo: Repository<AlumnoInscrito>,
@InjectRepository(Periodo, 'dbAT')
private readonly periodoRepository: Repository<Periodo>,
) {}
async findAll(): Promise<AlumnoInscrito[]> {
@@ -22,4 +26,28 @@ export class AlumnoInscritoService {
relations: ['alumno', 'periodo', 'plataforma'],
});
}
async create(dto: CreateAlumnoInscritoDto): Promise<AlumnoInscrito> {
const periodo = await this.periodoRepository.findOne({
order: {
id_periodo: 'DESC',
},
});
const existing = await this.alumnoInscritoRepo.findOne({
where: {
alumno: { id_cuenta: dto.id_cuenta },
periodo: { id_periodo: periodo?.id_periodo },
},
});
if (existing) {
throw new BadRequestException(
'El alumno ya está inscrito en este periodo y plataforma',
);
}
const alumnoInscrito = this.alumnoInscritoRepo.create(dto);
return this.alumnoInscritoRepo.save(alumnoInscrito);
}
}
@@ -23,7 +23,10 @@ export class PersonaController {
const persona = req.user;
if (!persona) {
return res.redirect(`${process.env.FRONTEND_URL}?error=oauth_failed`);
const error = req.query.error || 'oauth_denied';
return res.redirect(
`${process.env.FRONTEND_URL}/oauth-callback?error=${error}`,
);
}
const jwt = await this.personaService.generateJwt(persona);