From e4c9bf26225eb0306572bda1a202a15ed9117d3b Mon Sep 17 00:00:00 2001 From: lemuel Date: Wed, 6 Apr 2022 15:27:23 -0500 Subject: [PATCH] crear modulo --- .../id-institucion.dto.ts} | 2 +- src/modulo/dto/crear-modulo.dto.ts | 9 +++++++++ src/modulo/modulo.controller.ts | 18 ++++++++++++++---- src/modulo/modulo.entity.ts | 2 +- src/modulo/modulo.service.ts | 19 ++++++++++++++++--- 5 files changed, 41 insertions(+), 9 deletions(-) rename src/{modulo/dto/modulos.dto.ts => dto/id-institucion.dto.ts} (75%) create mode 100644 src/modulo/dto/crear-modulo.dto.ts diff --git a/src/modulo/dto/modulos.dto.ts b/src/dto/id-institucion.dto.ts similarity index 75% rename from src/modulo/dto/modulos.dto.ts rename to src/dto/id-institucion.dto.ts index 7d89e2d..d0996ef 100644 --- a/src/modulo/dto/modulos.dto.ts +++ b/src/dto/id-institucion.dto.ts @@ -1,6 +1,6 @@ import { IsNumberString } from 'class-validator'; -export class ModulosDto { +export class IdInstitucionDto { @IsNumberString() id_institucion: string; } diff --git a/src/modulo/dto/crear-modulo.dto.ts b/src/modulo/dto/crear-modulo.dto.ts new file mode 100644 index 0000000..458deb6 --- /dev/null +++ b/src/modulo/dto/crear-modulo.dto.ts @@ -0,0 +1,9 @@ +import { IsNumber, IsString } from 'class-validator'; + +export class CrearModuloDto { + @IsNumber() + id_institucion: number; + + @IsString() + modulo: string; +} diff --git a/src/modulo/modulo.controller.ts b/src/modulo/modulo.controller.ts index c841284..cb9b481 100644 --- a/src/modulo/modulo.controller.ts +++ b/src/modulo/modulo.controller.ts @@ -1,10 +1,20 @@ -import { Controller, Get, Query } from '@nestjs/common'; +import { Body, Controller, Get, Post, Query } from '@nestjs/common'; import { ModuloService } from './modulo.service'; -import { ModulosDto } from './dto/modulos.dto'; +import { IdInstitucionDto } from '../dto/id-institucion.dto'; +import { CrearModuloDto } from './dto/crear-modulo.dto'; @Controller('modulo') export class ModuloController { constructor(private moduloService: ModuloService) {} - @Get('modulos') - Modulos(@Query() query: ModulosDto) {} + @Get() + get(@Query() query: IdInstitucionDto) { + return this.moduloService.findByIdInstitucion(Number(query.id_institucion)); + } + + @Post() + create(@Body() body: CrearModuloDto) { + const modulo = this.moduloService.create({ + modulo: body.modulo, + }); + } } diff --git a/src/modulo/modulo.entity.ts b/src/modulo/modulo.entity.ts index d90897d..c1e0231 100644 --- a/src/modulo/modulo.entity.ts +++ b/src/modulo/modulo.entity.ts @@ -17,7 +17,7 @@ export class Modulo { @Column() modulo: string; - @Column() + @Column({ default: false }) activo: boolean; @ManyToOne(() => Institucion, (institucion) => institucion.modulos) diff --git a/src/modulo/modulo.service.ts b/src/modulo/modulo.service.ts index 6cf70bc..08c8759 100644 --- a/src/modulo/modulo.service.ts +++ b/src/modulo/modulo.service.ts @@ -9,9 +9,22 @@ export class ModuloService { @InjectRepository(Modulo) private repository: Repository, ) {} - create() { - const modulo = this.repository.create({ activo: true }); + findByIdInstitucion(id_institucion: number) { + return this.repository.find({ + where: { institucion: id_institucion }, + }); + } - return this.repository.save(modulo); + create(attrs: Partial) { + console.log(attrs); + return this.repository + .findOne({ + where: { institucion: attrs.institucion, modulo: attrs.modulo }, + }) + .then((res) => { + console.log(res); + if (res) throw new Error('Ya existe este usuario.'); + return this.repository.save(attrs); + }); } }