institucion tipo entrada documentación
This commit is contained in:
@@ -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.',
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user