update institucion programa listo

This commit is contained in:
xXpuma99Xx
2022-06-01 11:42:57 -05:00
parent 6ba36ac6bd
commit 55d4b5d74e
6 changed files with 51 additions and 4 deletions
@@ -0,0 +1,9 @@
import { IsBoolean, IsInt } from 'class-validator';
export class ProgramaUpdateDto {
@IsInt()
id_institucion_programa: number;
@IsBoolean()
mostrar: boolean;
}
@@ -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);
}
}
@@ -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<InstitucionPrograma>) {
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.',
}));
}
}