institucion tipo entrada documentación

This commit is contained in:
xXpuma99Xx
2022-05-30 20:45:15 -05:00
parent f45bb17a22
commit 22874b2e19
4 changed files with 88 additions and 5 deletions
@@ -0,0 +1,9 @@
import { IsBoolean, IsInt } from 'class-validator';
export class InstitucionTipoEntradaUpdateDto {
@IsInt()
id_institucion_tipo_entrada: number;
@IsBoolean()
mostrar: boolean;
}
@@ -11,7 +11,7 @@ import { TipoEntrada } from './tipo-entrada.entity';
@Entity()
export class InstitucionTipoEntrada {
@PrimaryGeneratedColumn()
id_institucion_carrera: number;
id_institucion_tipo_entrada: number;
@Column({ type: Boolean, nullable: false, default: false })
mostrar: boolean;
@@ -1,25 +1,43 @@
import { Body, Controller, Get, Post, Query } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger';
import { Body, Controller, Get, Post, Put, Query } from '@nestjs/common';
import { ApiBody, ApiOperation, ApiQuery, ApiTags } from '@nestjs/swagger';
import { InstitucionTipoEntradaService } from './institucion-tipo-entrada.service';
import { IdInstitucionDto } from 'src/dto/id-institucion.dto';
import { InstitucionTipoEntradaCreateDto } from './dto/institucion-tipo-entrada-create.dto';
import { InstitucionTipoEntradaUpdateDto } from './dto/institucion-tipo-entrada-update.dto';
@Controller('institucion-tipo-entrada')
// @ApiTags('institucion-tipo-entrada')
@ApiTags('institucion-tipo-entrada')
export class InstitucionTipoEntradaController {
constructor(private tipoEntradaService: InstitucionTipoEntradaService) {}
@Post()
@ApiOperation({ description: 'Endpoint que crea un tipo de entrada.' })
@ApiBody({
description: 'Es obligatorio mandar la variable tipo_entrada.',
examples: { ejemplo: { value: { tipo_entrada: '' } } },
})
create(@Body() body: InstitucionTipoEntradaCreateDto) {
return this.tipoEntradaService.create(body.tipo_entrada);
}
@Get()
@ApiOperation({
description: 'Endpoint que retorna todos los tipos de entrada.',
})
get() {
return this.tipoEntradaService.findAll();
}
@Get('tipos-entrada')
@ApiOperation({
description:
'Endpoint que retorna todos los tipos de entradas de una institución.',
})
@ApiQuery({
description: 'Id de la institución',
name: 'id_institucion',
type: 'string',
})
tiposEntrada(@Query() query: IdInstitucionDto) {
return this.tipoEntradaService.findAllByIdInstitucion(
parseInt(query.id_institucion),
@@ -27,9 +45,33 @@ export class InstitucionTipoEntradaController {
}
@Get('tipos-entrada-mostrar')
@ApiOperation({
description:
'Endpoint que retorna todos los tipos de entrada de una institución que tengan el campo mostrar en true.',
})
@ApiQuery({
description: 'Id de la institución',
name: 'id_institucion',
type: 'string',
})
tipoEntradaMostrar(@Query() query: IdInstitucionDto) {
return this.tipoEntradaService.findAllByIdInstitucionMostrar(
parseInt(query.id_institucion),
);
}
@Put()
@ApiOperation({
description:
'Endpoint que actualiza la información de el tipo de entrada de una institución',
})
@ApiBody({
description: 'Ambas variables son obligatorias.',
examples: {
ejemplo: { value: { id_institucion_tipo_entrada: 130, mostrar: true } },
},
})
update(@Body() body: InstitucionTipoEntradaUpdateDto) {
return this.tipoEntradaService.update(body);
}
}
@@ -1,4 +1,8 @@
import { ConflictException, Injectable } from '@nestjs/common';
import {
ConflictException,
Injectable,
NotFoundException,
} from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { InstitucionTipoEntrada } from './entity/institucion-tipo-entrada.entity';
@@ -51,4 +55,32 @@ export class InstitucionTipoEntradaService {
findAllByIdInstitucionMostrar(id_institucion: number) {
return this.findAllByIdInstitucion(id_institucion, true);
}
findById(id_institucion_tipo_entrada: number) {
return this.repositoryInstitucionTipoEntrada
.findOne({
id_institucion_tipo_entrada,
})
.then((institucionTipoEntrada) => {
if (!institucionTipoEntrada)
throw new NotFoundException(
'No existe esta institucion tipo entrada.',
);
return institucionTipoEntrada;
});
}
update(attrs: Partial<InstitucionTipoEntrada>) {
return this.findById(attrs.id_institucion_tipo_entrada)
.then((institucionTipoEntrada) => {
Object.assign(institucionTipoEntrada, attrs);
return this.repositoryInstitucionTipoEntrada.save(
institucionTipoEntrada,
);
})
.then((_) => ({
message:
'Se actualizó correctamente la información de la institución tipo entrada.',
}));
}
}