From cfecb31d5db3425a534872865fb5b52f1474db45 Mon Sep 17 00:00:00 2001 From: xXpuma99Xx <51341582+xXpuma99Xx@users.noreply.github.com> Date: Mon, 13 Jun 2022 23:20:59 -0500 Subject: [PATCH] institucion programa input output dto --- .../create.dto.ts} | 2 +- .../update.dto.ts} | 2 +- .../dto/output/institucion-programa-min.dto.ts | 11 +++++++++++ .../dto/output/institucion-programa.dto.ts | 14 ++++++++++++++ .../dto/output/programa.dto.ts | 9 +++++++++ .../institucion-programa.controller.ts | 15 +++++++++++---- .../institucion-programa.service.ts | 13 ++++++++++--- 7 files changed, 57 insertions(+), 9 deletions(-) rename src/institucion-programa/dto/{programa-create.dto.ts => input/create.dto.ts} (71%) rename src/institucion-programa/dto/{programa-update.dto.ts => input/update.dto.ts} (80%) create mode 100644 src/institucion-programa/dto/output/institucion-programa-min.dto.ts create mode 100644 src/institucion-programa/dto/output/institucion-programa.dto.ts create mode 100644 src/institucion-programa/dto/output/programa.dto.ts diff --git a/src/institucion-programa/dto/programa-create.dto.ts b/src/institucion-programa/dto/input/create.dto.ts similarity index 71% rename from src/institucion-programa/dto/programa-create.dto.ts rename to src/institucion-programa/dto/input/create.dto.ts index dd9a049..1f8d436 100644 --- a/src/institucion-programa/dto/programa-create.dto.ts +++ b/src/institucion-programa/dto/input/create.dto.ts @@ -1,6 +1,6 @@ import { IsString } from 'class-validator'; -export class ProgramaCreateDto { +export class CreateProgramaDto { @IsString() programa: string; } diff --git a/src/institucion-programa/dto/programa-update.dto.ts b/src/institucion-programa/dto/input/update.dto.ts similarity index 80% rename from src/institucion-programa/dto/programa-update.dto.ts rename to src/institucion-programa/dto/input/update.dto.ts index 78c58c7..77c4a62 100644 --- a/src/institucion-programa/dto/programa-update.dto.ts +++ b/src/institucion-programa/dto/input/update.dto.ts @@ -1,6 +1,6 @@ import { IsBoolean, IsInt } from 'class-validator'; -export class ProgramaUpdateDto { +export class UpdateProgramaDto { @IsInt() id_institucion_programa: number; diff --git a/src/institucion-programa/dto/output/institucion-programa-min.dto.ts b/src/institucion-programa/dto/output/institucion-programa-min.dto.ts new file mode 100644 index 0000000..b42b566 --- /dev/null +++ b/src/institucion-programa/dto/output/institucion-programa-min.dto.ts @@ -0,0 +1,11 @@ +import { Expose, Type } from 'class-transformer'; +import { ProgramaOutputDto } from './programa.dto'; + +export class InstitucionProgramaMinOutputDto { + @Expose() + id_institucion_programa; + + @Expose() + @Type(() => ProgramaOutputDto) + programa; +} diff --git a/src/institucion-programa/dto/output/institucion-programa.dto.ts b/src/institucion-programa/dto/output/institucion-programa.dto.ts new file mode 100644 index 0000000..4e40097 --- /dev/null +++ b/src/institucion-programa/dto/output/institucion-programa.dto.ts @@ -0,0 +1,14 @@ +import { Expose, Type } from 'class-transformer'; +import { ProgramaOutputDto } from './programa.dto'; + +export class InstitucionProgramaOutputDto { + @Expose() + id_institucion_programa; + + @Expose() + mostrar; + + @Expose() + @Type(() => ProgramaOutputDto) + programa; +} diff --git a/src/institucion-programa/dto/output/programa.dto.ts b/src/institucion-programa/dto/output/programa.dto.ts new file mode 100644 index 0000000..55db276 --- /dev/null +++ b/src/institucion-programa/dto/output/programa.dto.ts @@ -0,0 +1,9 @@ +import { Expose } from 'class-transformer'; + +export class ProgramaOutputDto { + @Expose() + id_programa; + + @Expose() + programa; +} diff --git a/src/institucion-programa/institucion-programa.controller.ts b/src/institucion-programa/institucion-programa.controller.ts index 9662721..7246b38 100644 --- a/src/institucion-programa/institucion-programa.controller.ts +++ b/src/institucion-programa/institucion-programa.controller.ts @@ -1,9 +1,13 @@ import { Body, Controller, Get, Post, Put, Query } from '@nestjs/common'; import { ApiBody, ApiOperation, ApiQuery, ApiTags } from '@nestjs/swagger'; +import { Serealize } from '../interceptors/serialize.interceptor'; 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'; +import { CreateProgramaDto } from './dto/input/create.dto'; +import { UpdateProgramaDto } from './dto/input/update.dto'; +import { InstitucionProgramaOutputDto } from './dto/output/institucion-programa.dto'; +import { InstitucionProgramaMinOutputDto } from './dto/output/institucion-programa-min.dto'; +import { ProgramaOutputDto } from './dto/output/programa.dto'; @Controller('institucion-programa') @ApiTags('institucion-programa') @@ -16,16 +20,18 @@ export class InstitucionProgramaController { description: 'Es obligatorio mandar la varible programa.', examples: { ejemplo: { value: { programa: '' } } }, }) - create(@Body() body: ProgramaCreateDto) { + create(@Body() body: CreateProgramaDto) { return this.institucionProgramaService.create(body.programa); } + @Serealize(ProgramaOutputDto) @Get() @ApiOperation({ description: 'Endpoint que retorna todos los programas.' }) get() { return this.institucionProgramaService.findAllProgramas(); } + @Serealize(InstitucionProgramaOutputDto) @Get('programas') @ApiOperation({ description: 'Endpoint que retorna todos los programas de una institución.', @@ -41,6 +47,7 @@ export class InstitucionProgramaController { ); } + @Serealize(InstitucionProgramaMinOutputDto) @Get('programas-mostrar') @ApiOperation({ description: @@ -68,7 +75,7 @@ export class InstitucionProgramaController { ejemplo: { value: { id_institucion_programa: 130, mostrar: true } }, }, }) - update(@Body() body: ProgramaUpdateDto) { + update(@Body() body: UpdateProgramaDto) { return this.institucionProgramaService.update(body); } } diff --git a/src/institucion-programa/institucion-programa.service.ts b/src/institucion-programa/institucion-programa.service.ts index e1aa484..2ff1e24 100644 --- a/src/institucion-programa/institucion-programa.service.ts +++ b/src/institucion-programa/institucion-programa.service.ts @@ -4,7 +4,7 @@ import { NotFoundException, } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; -import { Repository } from 'typeorm'; +import { Not, Repository } from 'typeorm'; import { InstitucionPrograma } from './entity/institucion-programa.entity'; import { Programa } from './entity/programa.entity'; import { InstitucionService } from '../institucion/institucion.service'; @@ -76,7 +76,10 @@ export class InstitucionProgramaService { return this.institucionService .findById(id_institucion) .then((institucion) => - this.institucionProgramaRepository.find({ institucion }), + this.institucionProgramaRepository.find({ + institucion, + programa: { id_programa: Not(1) }, + }), ); } @@ -84,7 +87,11 @@ export class InstitucionProgramaService { return this.institucionService .findById(id_institucion) .then((institucion) => - this.institucionProgramaRepository.find({ institucion, mostrar: true }), + this.institucionProgramaRepository.find({ + institucion, + mostrar: true, + programa: { id_programa: Not(1) }, + }), ); }