modulo crear y buscar modulos por id institucion

This commit is contained in:
xXpuma99Xx 2022-04-16 11:21:52 -05:00
parent f91d422d67
commit 7452096204
6 changed files with 41 additions and 30 deletions

View File

@ -9,7 +9,7 @@ import { Usuario } from '../usuario/usuario.entity';
@Entity()
export class Institucion {
@PrimaryGeneratedColumn()
id_institucion: string;
id_institucion: number;
@Column()
institucion: string;

View File

@ -8,5 +8,6 @@ import { InstitucionService } from './institucion.service';
imports: [TypeOrmModule.forFeature([Institucion])],
controllers: [InstitucionController],
providers: [InstitucionService],
exports: [InstitucionService],
})
export class InstitucionModule {}

View File

@ -13,11 +13,11 @@ export class InstitucionService {
return this.repository.find();
}
findById(id_institucion: number) {
const institucion = this.repository.find({ where: { id_institucion } });
async findById(id_institucion: number) {
return this.repository.findOne({ id_institucion }).then((institucion) => {
if (!institucion)
throw new NotFoundException('No existe esta institución.');
return institucion;
});
}
}

View File

@ -1,21 +1,21 @@
import { Body, Controller, Get, Post, Query } from '@nestjs/common';
import { ModuloService } from './modulo.service';
import { Serealize } from '../interceptors/serialize.interceptor';
// import { Serealize } from '../interceptors/serialize.interceptor';
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")
@Get('modulos')
get(@Query() query: IdInstitucionDto) {
return this.moduloService.findAllByIdInstitucion(Number(query.id_institucion));
return this.moduloService.findAllByIdInstitucion(
Number(query.id_institucion),
);
}
@Post()
create(@Body() body: CrearModuloDto) {
const modulo = this.moduloService.create({
modulo: body.modulo,
});
return this.moduloService.create(body.id_institucion, body.modulo);
}
}

View File

@ -3,9 +3,10 @@ import { TypeOrmModule } from '@nestjs/typeorm';
import { ModuloController } from './modulo.controller';
import { Modulo } from './modulo.entity';
import { ModuloService } from './modulo.service';
import { InstitucionModule } from '../institucion/institucion.module';
@Module({
imports: [TypeOrmModule.forFeature([Modulo])],
imports: [TypeOrmModule.forFeature([Modulo]), InstitucionModule],
controllers: [ModuloController],
providers: [ModuloService],
})

View File

@ -1,29 +1,38 @@
import { Injectable } from '@nestjs/common';
import { Repository } from 'typeorm';
import { ConflictException, Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { Modulo } from './modulo.entity';
import { InstitucionService } from '../institucion/institucion.service';
@Injectable()
export class ModuloService {
constructor(
@InjectRepository(Modulo) private repository: Repository<Modulo>,
@InjectRepository(Modulo) private moduloRepository: Repository<Modulo>,
private institucionService: InstitucionService,
) {}
findAllByIdInstitucion(id_institucion: number) {
return this.repository.find({
where: { institucion: { id_institucion: 1 } },
});
async findAllByIdInstitucion(id_institucion: number) {
return this.institucionService
.findById(id_institucion)
.then((institucion) => this.moduloRepository.find({ institucion }));
}
create(attrs: Partial<Modulo>) {
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);
async create(id_institucion: number, modulo: string) {
const institucion = await this.institucionService.findById(id_institucion);
const nuevoModulo = this.moduloRepository.create({
institucion,
modulo,
});
return this.moduloRepository
.findOne({ modulo, institucion })
.then((existeModulo) => {
if (existeModulo)
throw new ConflictException(
'Ya existe un módulo con este nombre, intente con otro nombre.',
);
return this.moduloRepository.save(nuevoModulo);
})
.then((res) => ({ message: 'Se creo correctamente el módulo.' }));
}
}