add lineas programaticas

This commit is contained in:
TheManus88
2024-09-12 20:20:06 -06:00
parent 052328ad36
commit e70e13fb2a
8 changed files with 113 additions and 6 deletions
+12 -3
View File
@@ -17,13 +17,17 @@ import { JwtModule } from '@nestjs/jwt';
import { EjesEstrategicosService } from './ejesEstrategicos/ejesEstrategicos.service';
import { EjesEstrategicosController } from './ejesEstrategicos/ejesEstrategicos.controller';
import * as process from 'node:process';
import { EjesEstrategicosModule } from "./ejesEstrategicos/ejesEstrategicos.module";
import { EjesEstrategicosModule } from './ejesEstrategicos/ejesEstrategicos.module';
import { LineasProgramaticasController } from './lineasProgramaticas/lineasProgramaticas.controller';
import { LineasProgramaticasService } from './lineasProgramaticas/lineasProgramaticas.service';
import { LineasProgramaticasModule } from './lineasProgramaticas/lineasProgramaticas.module';
config({ path: '.env' });
@Module({
imports: [
AuthModule,
UsersModule,
EjesEstrategicosModule,
LineasProgramaticasModule,
ConfigModule.forRoot({
isGlobal: true,
}),
@@ -50,7 +54,12 @@ config({ path: '.env' });
signOptions: { expiresIn: process.env.JWT_EXPIRES },
}),
],
controllers: [AppController, UsuarioController, EjesEstrategicosController],
providers: [AppService, EjesEstrategicosService],
controllers: [
AppController,
UsuarioController,
EjesEstrategicosController,
LineasProgramaticasController,
],
providers: [AppService, EjesEstrategicosService, LineasProgramaticasService],
})
export class AppModule {}
+13
View File
@@ -0,0 +1,13 @@
import { IsDefined, IsNotEmpty, IsString } from '@nestjs/class-validator';
export class LinearProgramaticaDTO {
@IsString()
@IsNotEmpty()
@IsDefined()
readonly descripcion: string;
@IsString()
@IsNotEmpty()
@IsDefined()
readonly eje_estrategico_id: number;
}
@@ -18,6 +18,6 @@ export class EjesEstrategicosService {
addEjeEstrategico(
ejeEstrategico: EjeEstrategicoDTO,
): Promise<EjeEstrategico> {
return this.ejesEtrategicosRepository.save(ejeEstrategico).finally();
return this.ejesEtrategicosRepository.save(ejeEstrategico);
}
}
+3
View File
@@ -16,6 +16,9 @@ export class LineaProgramatica {
() => EjeEstrategico,
(ejeEstrategico) => ejeEstrategico.lineasProgramaticas,
)
@Column('int')
eje_estrategico_id: number;
@JoinColumn({ name: 'eje_estrategico_id' })
ejeEstrategico: EjeEstrategico;
-2
View File
@@ -13,8 +13,6 @@ export class EjeEstrategico {
@Column('text')
objetivo: string;
@Column('text')
lineas_programaticas: string;
@OneToMany(
() => ComentarioEje,
@@ -0,0 +1,46 @@
import {
BadRequestException,
Body,
Controller,
Get,
Header,
HttpCode,
Post,
Req,
Res,
UseGuards,
} from '@nestjs/common';
import { AuthGuard } from '../auth/auth.guard';
import { LineasProgramaticasService } from './lineasProgramaticas.service';
import { LinearProgramaticaDTO } from '../dtos/lineaProgramaticaDTO';
import { isUndefined } from '@nestjs/common/utils/shared.utils';
import Any = jasmine.Any;
@Controller('lineasProgramaticas')
export class LineasProgramaticasController {
constructor(
private readonly lineasPogramaticasService: LineasProgramaticasService,
) {}
@UseGuards(AuthGuard)
@Header('content-type', 'application/json')
@Get('lineasProgramaticas')
getLineasProgramaticas(@Req() request: Request) {
const ejeId = request.body['ejeEstrategicoId'];
if (!isUndefined(ejeId)) {
return this.lineasPogramaticasService.findLineasProgramaticas(ejeId);
} else {
throw new BadRequestException();
}
}
@UseGuards(AuthGuard)
@Header('content-type', 'application/json')
@Post('addLineaProgramatica')
@HttpCode(200)
addLineasProgramaticas(@Body() lineaProgramatica: LinearProgramaticaDTO) {
return this.lineasPogramaticasService.addLineaProgramatica(
lineaProgramatica,
);
}
}
@@ -0,0 +1,13 @@
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { LineaProgramatica } from '../entities/LineaProgramatica.entity';
import { LineasProgramaticasService } from './lineasProgramaticas.service';
import { LineasProgramaticasController } from './lineasProgramaticas.controller';
@Module({
imports: [TypeOrmModule.forFeature([LineaProgramatica])],
providers: [LineasProgramaticasService],
controllers: [LineasProgramaticasController],
exports: [TypeOrmModule.forFeature([LineaProgramatica])],
})
export class LineasProgramaticasModule {}
@@ -0,0 +1,25 @@
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { LineaProgramatica } from '../entities/LineaProgramatica.entity';
import { LinearProgramaticaDTO } from '../dtos/lineaProgramaticaDTO';
@Injectable()
export class LineasProgramaticasService {
constructor(
@InjectRepository(LineaProgramatica)
private lineasProgramaticasRepository: Repository<LineaProgramatica>,
) {}
findLineasProgramaticas(
eje_estrategico_id: number,
): Promise<LineaProgramatica[]> {
return this.lineasProgramaticasRepository.findBy({ eje_estrategico_id });
}
addLineaProgramatica(
lineaProgramatica: LinearProgramaticaDTO,
): Promise<LineaProgramatica> {
return this.lineasProgramaticasRepository.save(lineaProgramatica);
}
}