diff --git a/src/alumno/student.service.ts b/src/alumno/student.service.ts index 3e5ae98..83b750e 100644 --- a/src/alumno/student.service.ts +++ b/src/alumno/student.service.ts @@ -70,6 +70,7 @@ export class AlumnoService { if (!student) { throw new NotFoundException(`Numero de cuenta ${id_cuenta} no existente`); } + const sancion = await this.alumnoSancionService.findSancion(id_cuenta) if (sancion) { diff --git a/src/alumno_inscrito/alumno_inscrito.controller.ts b/src/alumno_inscrito/alumno_inscrito.controller.ts index fba3a78..5e2aa7b 100644 --- a/src/alumno_inscrito/alumno_inscrito.controller.ts +++ b/src/alumno_inscrito/alumno_inscrito.controller.ts @@ -20,7 +20,7 @@ export class AlumnoInscritoController { } @Get("/inscritos/:idPeriodo") - async findAllInscritos(@Param('idPeriodo') idPeriodo:number) { + async findAllInscritos(@Param('idPeriodo') idPeriodo: number) { return this.alumnoInscritoService.findAllInscritos(idPeriodo); } @@ -40,11 +40,19 @@ export class AlumnoInscritoController { } @Get(':id_cuenta') + async findByIdWhitoud( + @Param('id_cuenta') id_cuenta: number, + ): Promise { + return this.alumnoInscritoService.findByIdWhitoud(id_cuenta); + } + + @Get(':id_cuenta/sancion') async findById( @Param('id_cuenta') id_cuenta: number, ): Promise { return this.alumnoInscritoService.findById(id_cuenta); } + //pruebas borrar @Patch('platica/:idCuenta/:idPeriodo/:idPlataforma') marcarPlatica( diff --git a/src/alumno_inscrito/alumno_inscrito.module.ts b/src/alumno_inscrito/alumno_inscrito.module.ts index bb76fca..84dee4c 100644 --- a/src/alumno_inscrito/alumno_inscrito.module.ts +++ b/src/alumno_inscrito/alumno_inscrito.module.ts @@ -1,15 +1,17 @@ -import { Module } from '@nestjs/common'; +import { forwardRef, Module } from '@nestjs/common'; import { AlumnoInscritoService } from './alumno_inscrito.service'; import { AlumnoInscritoController } from './alumno_inscrito.controller'; import { TypeOrmModule } from '@nestjs/typeorm'; import { AlumnoInscrito, Plataforma } from './entities/alumno_inscrito.entity'; import { BitacoraMesa } from 'src/bitacora_mesa/entities/bitacora_mesa.entity'; import { PeriodoModule } from 'src/periodo/periodo.module'; +import { AlumnoSancionModule } from 'src/alumno_sancion/alumno_sancion.module'; @Module({ - imports: [TypeOrmModule.forFeature([AlumnoInscrito,Plataforma,BitacoraMesa]),PeriodoModule], + imports: [TypeOrmModule.forFeature([AlumnoInscrito, Plataforma, BitacoraMesa]), PeriodoModule, + forwardRef(() => AlumnoSancionModule),], controllers: [AlumnoInscritoController], providers: [AlumnoInscritoService], - exports:[AlumnoInscritoService] + exports: [AlumnoInscritoService] }) -export class AlumnoInscritoModule {} +export class AlumnoInscritoModule { } diff --git a/src/alumno_inscrito/alumno_inscrito.service.ts b/src/alumno_inscrito/alumno_inscrito.service.ts index 5bb4226..3b56053 100644 --- a/src/alumno_inscrito/alumno_inscrito.service.ts +++ b/src/alumno_inscrito/alumno_inscrito.service.ts @@ -1,5 +1,8 @@ import { BadRequestException, + ForbiddenException, + forwardRef, + Inject, Injectable, NotFoundException, } from '@nestjs/common'; @@ -8,6 +11,7 @@ import { AlumnoInscrito, Plataforma } from './entities/alumno_inscrito.entity'; import { InjectRepository } from '@nestjs/typeorm'; import { EntityManager, Repository } from 'typeorm'; import { PeriodoService } from 'src/periodo/periodo.service'; +import { AlumnoSancionService } from 'src/alumno_sancion/alumno_sancion.service'; @Injectable() export class AlumnoInscritoService { @@ -17,6 +21,9 @@ export class AlumnoInscritoService { @InjectRepository(Plataforma) private readonly plataformaRepo: Repository, private readonly periodoService: PeriodoService, + + @Inject(forwardRef(() => AlumnoSancionService)) + private readonly alumnoSancionService: AlumnoSancionService, ) { } async createWhitoutPay( @@ -89,6 +96,30 @@ export class AlumnoInscritoService { } async findById(id_cuenta: number): Promise { + const sancion = await this.alumnoSancionService.findSancion(id_cuenta) + + if (sancion) { + throw new ForbiddenException('El usuario se encuentra sancionado') + } + + const students = await this.alumnoInscritoRepo + .createQueryBuilder('ai') + .leftJoinAndSelect('ai.alumno', 'alumno') + .leftJoinAndSelect('ai.periodo', 'periodo') + .leftJoinAndSelect('ai.plataforma', 'plataforma') + .where('alumno.id_cuenta = :id_cuenta', { id_cuenta }) + .andWhere("periodo.activo = b'1'") + .getMany(); + + if (students.length === 0) { + throw new NotFoundException('Estudiante no inscrito en el periodo actual'); + } + + return students; + } + + async findByIdWhitoud(id_cuenta: number): Promise { + const students = await this.alumnoInscritoRepo .createQueryBuilder('ai') .leftJoinAndSelect('ai.alumno', 'alumno')