diff --git a/src/Profesor/profesor.module.ts b/src/Profesor/profesor.module.ts index 789f5b1..3da5f14 100644 --- a/src/Profesor/profesor.module.ts +++ b/src/Profesor/profesor.module.ts @@ -3,9 +3,16 @@ import { TypeOrmModule } from '@nestjs/typeorm'; import { ProfesorService } from './profesor.service'; import { ProfesorController } from './profesor.controller'; import { Profesor } from './entities/profesor.entity'; +import { DatosAcademicosModule } from '../datos_academicos/datos_academicos.module'; +import { LineasInvestigacionModule } from '../lineas_investigacion/lineas_investigacion.module'; +import { ProyectosAcademicosModule } from '../proyectos_academicos/proyectos_academicos.module'; @Module({ - imports: [TypeOrmModule.forFeature([Profesor])], + imports: [TypeOrmModule.forFeature([Profesor]), + DatosAcademicosModule, + LineasInvestigacionModule, + ProyectosAcademicosModule, +], providers: [ProfesorService], controllers: [ProfesorController], }) diff --git a/src/Profesor/profesor.service.ts b/src/Profesor/profesor.service.ts index 56c8d28..a620eec 100644 --- a/src/Profesor/profesor.service.ts +++ b/src/Profesor/profesor.service.ts @@ -1,5 +1,8 @@ import { HttpException, Injectable } from '@nestjs/common'; import { Profesor } from './entities/profesor.entity'; +import { DatosAcademicosService } from '../datos_academicos/datos_academicos.service'; +import { LineasInvestigacionService } from '../lineas_investigacion/lineas_investigacion.service'; +import { ProyectosAcademicosService } from '../proyectos_academicos/proyectos_academicos.service'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; import { profesorDto } from './dto/profesorDto.dto'; @@ -7,7 +10,10 @@ import { profesorDto } from './dto/profesorDto.dto'; @Injectable() export class ProfesorService { constructor( - @InjectRepository(Profesor) private profesorRepository: Repository + @InjectRepository(Profesor) private profesorRepository: Repository, + private datosAcademicosService: DatosAcademicosService, + private lineasInvestigacionService: LineasInvestigacionService, + private proyectosAcademicosService: ProyectosAcademicosService, ) {} //register teacher @@ -50,11 +56,16 @@ export class ProfesorService { //remove teacher async remove(id_profesor: number) { - const profesor = await this.profesorRepository.findOne({ where: { id_profesor } }); + const profesor = await this.profesorRepository.findOne({ where: { id_profesor }, relations: ['datosAcademicos'] }); if (!profesor) { throw new HttpException('Profesor not found', 404); } + // Delete related records in datos_academicos + await this.datosAcademicosService.removeByProfesorId(id_profesor); + await this.lineasInvestigacionService.removeByProfesorId(id_profesor); + await this.proyectosAcademicosService.removeByProfesorId(id_profesor); + await this.profesorRepository.remove(profesor); return { message: 'Profesor removed successfully' }; } diff --git a/src/datos_academicos/datos_academicos.controller.ts b/src/datos_academicos/datos_academicos.controller.ts new file mode 100644 index 0000000..d567d16 --- /dev/null +++ b/src/datos_academicos/datos_academicos.controller.ts @@ -0,0 +1,8 @@ +import { Controller, Delete, Param } from '@nestjs/common'; +import { DatosAcademicosService } from './datos_academicos.service'; + +@Controller('datos-academicos') +export class DatosAcademicosController { + constructor(private readonly datosAcademicosService: DatosAcademicosService) {} + +} diff --git a/src/datos_academicos/datos_academicos.module.ts b/src/datos_academicos/datos_academicos.module.ts new file mode 100644 index 0000000..5505237 --- /dev/null +++ b/src/datos_academicos/datos_academicos.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { DatosAcademicos } from './entities/datos_academicos.entity'; +import { DatosAcademicosService } from './datos_academicos.service'; + +@Module({ + imports: [TypeOrmModule.forFeature([DatosAcademicos])], + providers: [DatosAcademicosService], + exports: [DatosAcademicosService], +}) +export class DatosAcademicosModule {} diff --git a/src/datos_academicos/datos_academicos.service.ts b/src/datos_academicos/datos_academicos.service.ts new file mode 100644 index 0000000..b78852f --- /dev/null +++ b/src/datos_academicos/datos_academicos.service.ts @@ -0,0 +1,17 @@ +import { Injectable } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository } from 'typeorm'; +import { DatosAcademicos } from './entities/datos_academicos.entity'; + +@Injectable() +export class DatosAcademicosService { + constructor( + @InjectRepository(DatosAcademicos) + private readonly datosAcademicosRepository: Repository, + ) {} + + // Add methods to manage DatosAcademicos entities as needed + async removeByProfesorId(id_profesor: number): Promise { + await this.datosAcademicosRepository.delete({ profesor: { id_profesor } }); + } +} diff --git a/src/lineas_investigacion/lineas_investigacion.controller.ts b/src/lineas_investigacion/lineas_investigacion.controller.ts new file mode 100644 index 0000000..6321185 --- /dev/null +++ b/src/lineas_investigacion/lineas_investigacion.controller.ts @@ -0,0 +1,9 @@ +import { Controller, Delete, Param } from '@nestjs/common'; +import { LineasInvestigacionService } from './lineas_investigacion.service'; + +@Controller('lineas-investigacion') +export class LineasInvestigacionController { + constructor(private readonly lineasInvestigacionService: LineasInvestigacionService) {} + + +} diff --git a/src/lineas_investigacion/lineas_investigacion.module.ts b/src/lineas_investigacion/lineas_investigacion.module.ts new file mode 100644 index 0000000..8b23357 --- /dev/null +++ b/src/lineas_investigacion/lineas_investigacion.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { LineasInvestigacion } from './entities/lineas_investigacion.entity'; +import { LineasInvestigacionService } from './lineas_investigacion.service'; + +@Module({ + imports: [TypeOrmModule.forFeature([LineasInvestigacion])], + providers: [LineasInvestigacionService], + exports: [LineasInvestigacionService], +}) +export class LineasInvestigacionModule {} diff --git a/src/lineas_investigacion/lineas_investigacion.service.ts b/src/lineas_investigacion/lineas_investigacion.service.ts new file mode 100644 index 0000000..a73dda6 --- /dev/null +++ b/src/lineas_investigacion/lineas_investigacion.service.ts @@ -0,0 +1,17 @@ +import { Injectable } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository } from 'typeorm'; +import { LineasInvestigacion } from './entities/lineas_investigacion.entity'; + +@Injectable() +export class LineasInvestigacionService { + constructor( + @InjectRepository(LineasInvestigacion) + private readonly lineasInvestigacionRepository: Repository, + ) {} + + // Add methods to manage LineasInvestigacion entities as needed + async removeByProfesorId(id_profesor: number): Promise { + await this.lineasInvestigacionRepository.delete({ profesor: { id_profesor } }); + } +} diff --git a/src/proyectos_academicos/proyectos_academicos.controller.ts b/src/proyectos_academicos/proyectos_academicos.controller.ts new file mode 100644 index 0000000..96cabce --- /dev/null +++ b/src/proyectos_academicos/proyectos_academicos.controller.ts @@ -0,0 +1,9 @@ +import { Controller, Delete, Param } from '@nestjs/common'; +import { ProyectosAcademicosService } from './proyectos_academicos.service'; + +@Controller('proyectos-academicos') +export class ProyectosAcademicosController { + constructor(private readonly proyectosAcademicosService: ProyectosAcademicosService) {} + + +} diff --git a/src/proyectos_academicos/proyectos_academicos.module.ts b/src/proyectos_academicos/proyectos_academicos.module.ts new file mode 100644 index 0000000..5a4f447 --- /dev/null +++ b/src/proyectos_academicos/proyectos_academicos.module.ts @@ -0,0 +1,11 @@ +import { Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { ProyectosAcademicos } from './entities/proyectos_academicos.entity'; +import { ProyectosAcademicosService } from './proyectos_academicos.service'; + +@Module({ + imports: [TypeOrmModule.forFeature([ProyectosAcademicos])], + providers: [ProyectosAcademicosService], + exports: [ProyectosAcademicosService], +}) +export class ProyectosAcademicosModule {} diff --git a/src/proyectos_academicos/proyectos_academicos.service.ts b/src/proyectos_academicos/proyectos_academicos.service.ts new file mode 100644 index 0000000..485d931 --- /dev/null +++ b/src/proyectos_academicos/proyectos_academicos.service.ts @@ -0,0 +1,17 @@ +import { Injectable } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository } from 'typeorm'; +import { ProyectosAcademicos } from './entities/proyectos_academicos.entity'; + +@Injectable() +export class ProyectosAcademicosService { + constructor( + @InjectRepository(ProyectosAcademicos) + private readonly proyectosAcademicosRepository: Repository, + ) {} + + // Add methods to manage ProyectosAcademicos entities as needed + async removeByProfesorId(id_profesor: number): Promise { + await this.proyectosAcademicosRepository.delete({ profesor: { id_profesor } }); + } +}