modulo crear y buscar modulos por id institucion
This commit is contained in:
parent
f91d422d67
commit
7452096204
@ -9,7 +9,7 @@ import { Usuario } from '../usuario/usuario.entity';
|
|||||||
@Entity()
|
@Entity()
|
||||||
export class Institucion {
|
export class Institucion {
|
||||||
@PrimaryGeneratedColumn()
|
@PrimaryGeneratedColumn()
|
||||||
id_institucion: string;
|
id_institucion: number;
|
||||||
|
|
||||||
@Column()
|
@Column()
|
||||||
institucion: string;
|
institucion: string;
|
||||||
|
@ -8,5 +8,6 @@ import { InstitucionService } from './institucion.service';
|
|||||||
imports: [TypeOrmModule.forFeature([Institucion])],
|
imports: [TypeOrmModule.forFeature([Institucion])],
|
||||||
controllers: [InstitucionController],
|
controllers: [InstitucionController],
|
||||||
providers: [InstitucionService],
|
providers: [InstitucionService],
|
||||||
|
exports: [InstitucionService],
|
||||||
})
|
})
|
||||||
export class InstitucionModule {}
|
export class InstitucionModule {}
|
||||||
|
@ -13,11 +13,11 @@ export class InstitucionService {
|
|||||||
return this.repository.find();
|
return this.repository.find();
|
||||||
}
|
}
|
||||||
|
|
||||||
findById(id_institucion: number) {
|
async findById(id_institucion: number) {
|
||||||
const institucion = this.repository.find({ where: { id_institucion } });
|
return this.repository.findOne({ id_institucion }).then((institucion) => {
|
||||||
|
if (!institucion)
|
||||||
if (!institucion)
|
throw new NotFoundException('No existe esta institución.');
|
||||||
throw new NotFoundException('No existe esta institución.');
|
return institucion;
|
||||||
return institucion;
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,21 +1,21 @@
|
|||||||
import { Body, Controller, Get, Post, Query } from '@nestjs/common';
|
import { Body, Controller, Get, Post, Query } from '@nestjs/common';
|
||||||
import { ModuloService } from './modulo.service';
|
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 { IdInstitucionDto } from '../dto/id-institucion.dto';
|
||||||
import { CrearModuloDto } from './dto/crear-modulo.dto';
|
import { CrearModuloDto } from './dto/crear-modulo.dto';
|
||||||
@Controller('modulo')
|
@Controller('modulo')
|
||||||
export class ModuloController {
|
export class ModuloController {
|
||||||
constructor(private moduloService: ModuloService) {}
|
constructor(private moduloService: ModuloService) {}
|
||||||
|
|
||||||
@Get("modulos")
|
@Get('modulos')
|
||||||
get(@Query() query: IdInstitucionDto) {
|
get(@Query() query: IdInstitucionDto) {
|
||||||
return this.moduloService.findAllByIdInstitucion(Number(query.id_institucion));
|
return this.moduloService.findAllByIdInstitucion(
|
||||||
|
Number(query.id_institucion),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Post()
|
@Post()
|
||||||
create(@Body() body: CrearModuloDto) {
|
create(@Body() body: CrearModuloDto) {
|
||||||
const modulo = this.moduloService.create({
|
return this.moduloService.create(body.id_institucion, body.modulo);
|
||||||
modulo: body.modulo,
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,9 +3,10 @@ import { TypeOrmModule } from '@nestjs/typeorm';
|
|||||||
import { ModuloController } from './modulo.controller';
|
import { ModuloController } from './modulo.controller';
|
||||||
import { Modulo } from './modulo.entity';
|
import { Modulo } from './modulo.entity';
|
||||||
import { ModuloService } from './modulo.service';
|
import { ModuloService } from './modulo.service';
|
||||||
|
import { InstitucionModule } from '../institucion/institucion.module';
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [TypeOrmModule.forFeature([Modulo])],
|
imports: [TypeOrmModule.forFeature([Modulo]), InstitucionModule],
|
||||||
controllers: [ModuloController],
|
controllers: [ModuloController],
|
||||||
providers: [ModuloService],
|
providers: [ModuloService],
|
||||||
})
|
})
|
||||||
|
@ -1,29 +1,38 @@
|
|||||||
import { Injectable } from '@nestjs/common';
|
import { ConflictException, Injectable } from '@nestjs/common';
|
||||||
import { Repository } from 'typeorm';
|
|
||||||
import { InjectRepository } from '@nestjs/typeorm';
|
import { InjectRepository } from '@nestjs/typeorm';
|
||||||
|
import { Repository } from 'typeorm';
|
||||||
import { Modulo } from './modulo.entity';
|
import { Modulo } from './modulo.entity';
|
||||||
|
import { InstitucionService } from '../institucion/institucion.service';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class ModuloService {
|
export class ModuloService {
|
||||||
constructor(
|
constructor(
|
||||||
@InjectRepository(Modulo) private repository: Repository<Modulo>,
|
@InjectRepository(Modulo) private moduloRepository: Repository<Modulo>,
|
||||||
|
private institucionService: InstitucionService,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
findAllByIdInstitucion(id_institucion: number) {
|
async findAllByIdInstitucion(id_institucion: number) {
|
||||||
return this.repository.find({
|
return this.institucionService
|
||||||
where: { institucion: { id_institucion: 1 } },
|
.findById(id_institucion)
|
||||||
});
|
.then((institucion) => this.moduloRepository.find({ institucion }));
|
||||||
}
|
}
|
||||||
|
|
||||||
create(attrs: Partial<Modulo>) {
|
async create(id_institucion: number, modulo: string) {
|
||||||
return this.repository
|
const institucion = await this.institucionService.findById(id_institucion);
|
||||||
.findOne({
|
const nuevoModulo = this.moduloRepository.create({
|
||||||
where: { institucion: attrs.institucion, modulo: attrs.modulo },
|
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) => {
|
.then((res) => ({ message: 'Se creo correctamente el módulo.' }));
|
||||||
console.log(res);
|
|
||||||
if (res) throw new Error('Ya existe este usuario.');
|
|
||||||
return this.repository.save(attrs);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user