diff --git a/src/carrera-programa/carrera-programa.controller.ts b/src/carrera-programa/carrera-programa.controller.ts index 0fd88ae..86a7535 100644 --- a/src/carrera-programa/carrera-programa.controller.ts +++ b/src/carrera-programa/carrera-programa.controller.ts @@ -34,7 +34,7 @@ export class CarreraProgramaController { 'Endpoint que borra la asociación entre una carrera y un programa.', }) @ApiBody({ - description: '', + description: 'Es obligatorio mandar la variable id_carrera_programa.', examples: { ejemplo: { value: { id_carrera_programa: 1 } } }, }) delete(@Body() body: CarreraProgramaDeleteDto) { diff --git a/src/institucion-carrera/entity/carrera.entity.ts b/src/institucion-carrera/entity/carrera.entity.ts index 2c82b6d..74142f5 100644 --- a/src/institucion-carrera/entity/carrera.entity.ts +++ b/src/institucion-carrera/entity/carrera.entity.ts @@ -20,7 +20,7 @@ export class Carrera { @Column({ type: String, nullable: false, length: 3 }) clave: string; - @ManyToOne(() => Nivel, (nivel) => nivel.carreras) + @ManyToOne(() => Nivel, (nivel) => nivel.carreras, { eager: true }) @JoinColumn({ name: 'id_nivel' }) nivel: Nivel; diff --git a/src/institucion-programa/dto/programa-update.dto.ts b/src/institucion-programa/dto/programa-update.dto.ts new file mode 100644 index 0000000..78c58c7 --- /dev/null +++ b/src/institucion-programa/dto/programa-update.dto.ts @@ -0,0 +1,9 @@ +import { IsBoolean, IsInt } from 'class-validator'; + +export class ProgramaUpdateDto { + @IsInt() + id_institucion_programa: number; + + @IsBoolean() + mostrar: boolean; +} diff --git a/src/institucion-programa/institucion-programa.controller.ts b/src/institucion-programa/institucion-programa.controller.ts index 27894ff..9662721 100644 --- a/src/institucion-programa/institucion-programa.controller.ts +++ b/src/institucion-programa/institucion-programa.controller.ts @@ -1,8 +1,9 @@ -import { Body, Controller, Get, Post, Query } from '@nestjs/common'; +import { Body, Controller, Get, Post, Put, Query } from '@nestjs/common'; import { ApiBody, ApiOperation, ApiQuery, ApiTags } from '@nestjs/swagger'; import { InstitucionProgramaService } from './institucion-programa.service'; import { IdInstitucionDto } from 'src/dto/id-institucion.dto'; import { ProgramaCreateDto } from '../institucion-programa/dto/programa-create.dto'; +import { ProgramaUpdateDto } from '../institucion-programa/dto/programa-update.dto'; @Controller('institucion-programa') @ApiTags('institucion-programa') @@ -55,4 +56,19 @@ export class InstitucionProgramaController { parseInt(query.id_institucion), ); } + + @Put() + @ApiOperation({ + description: + 'Endpoint que actualiza la información de una institución programa.', + }) + @ApiBody({ + description: 'Es obligatorio mandar la varible programa.', + examples: { + ejemplo: { value: { id_institucion_programa: 130, mostrar: true } }, + }, + }) + update(@Body() body: ProgramaUpdateDto) { + return this.institucionProgramaService.update(body); + } } diff --git a/src/institucion-programa/institucion-programa.service.ts b/src/institucion-programa/institucion-programa.service.ts index 51ac960..e1aa484 100644 --- a/src/institucion-programa/institucion-programa.service.ts +++ b/src/institucion-programa/institucion-programa.service.ts @@ -47,6 +47,16 @@ export class InstitucionProgramaService { return this.programaRepository.find(); } + findById(id_institucion_programa: number) { + return this.institucionProgramaRepository + .findOne({ id_institucion_programa }) + .then((institucionPrograma) => { + if (!institucionPrograma) + throw new NotFoundException('No existe esta institucion programa.'); + return institucionPrograma; + }); + } + findProgramaById(id_programa: number) { return this.programaRepository.findOne({ id_programa }).then((programa) => { if (!programa) throw new NotFoundException('No existe este programa.'); @@ -77,4 +87,16 @@ export class InstitucionProgramaService { this.institucionProgramaRepository.find({ institucion, mostrar: true }), ); } + + update(attrs: Partial) { + return this.findById(attrs.id_institucion_programa) + .then((institucionPrograma) => { + Object.assign(institucionPrograma, attrs); + return this.institucionProgramaRepository.save(institucionPrograma); + }) + .then((_) => ({ + message: + 'Se actualizó correctamente la información de esta institución programa.', + })); + } } diff --git a/src/modulo/modulo.service.ts b/src/modulo/modulo.service.ts index 4a4482a..40d07a1 100644 --- a/src/modulo/modulo.service.ts +++ b/src/modulo/modulo.service.ts @@ -69,7 +69,7 @@ export class ModuloService { return this.repository.save(modulo); }) .then((_) => ({ - message: 'Se actualizo correctamente la información del módulo.', + message: 'Se actualizó correctamente la información del módulo.', })); } }