Fix Delete

This commit is contained in:
TioSam77
2024-06-25 15:28:59 -06:00
11 changed files with 131 additions and 3 deletions
+8 -1
View File
@@ -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],
})
+13 -2
View File
@@ -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<Profesor>
@InjectRepository(Profesor) private profesorRepository: Repository<Profesor>,
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' };
}
@@ -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) {}
}
@@ -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 {}
@@ -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<DatosAcademicos>,
) {}
// Add methods to manage DatosAcademicos entities as needed
async removeByProfesorId(id_profesor: number): Promise<void> {
await this.datosAcademicosRepository.delete({ profesor: { id_profesor } });
}
}
@@ -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) {}
}
@@ -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 {}
@@ -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<LineasInvestigacion>,
) {}
// Add methods to manage LineasInvestigacion entities as needed
async removeByProfesorId(id_profesor: number): Promise<void> {
await this.lineasInvestigacionRepository.delete({ profesor: { id_profesor } });
}
}
@@ -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) {}
}
@@ -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 {}
@@ -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<ProyectosAcademicos>,
) {}
// Add methods to manage ProyectosAcademicos entities as needed
async removeByProfesorId(id_profesor: number): Promise<void> {
await this.proyectosAcademicosRepository.delete({ profesor: { id_profesor } });
}
}