modulos
This commit is contained in:
+1
-1
@@ -38,7 +38,7 @@ import { Infraccion } from './infraccion/infraccion.entity';
|
||||
import { Institucion } from './institucion/institucion.entity';
|
||||
import { InstitucionDia } from './institucion-dia/institucion-dia.entity';
|
||||
import { InstitucionInfraccion } from './institucion-infraccion/institucion-infraccion.entity';
|
||||
import { Modulo } from './modulo/modulo.entity';
|
||||
import { Modulo } from './modulo/entity/modulo.entity';
|
||||
import { Motivo } from './motivo/motivo.entity';
|
||||
import { Multa } from './multa/multa.entity';
|
||||
import { Operador } from './operador/operador.entity';
|
||||
|
||||
@@ -6,7 +6,7 @@ import {
|
||||
ManyToOne,
|
||||
JoinColumn,
|
||||
} from 'typeorm';
|
||||
import { Modulo } from '../modulo/modulo.entity';
|
||||
import { Modulo } from '../modulo/entity/modulo.entity';
|
||||
import { Equipo } from '../equipo/equipo.entity';
|
||||
import { TipoCarrito } from '../tipo-carrito/tipo-carrito.entity';
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ import { Entity, Column, PrimaryGeneratedColumn, OneToMany } from 'typeorm';
|
||||
import { InstitucionDia } from '../institucion-dia/institucion-dia.entity';
|
||||
import { InstitucionInfraccion } from '../institucion-infraccion/institucion-infraccion.entity';
|
||||
import { Carrera } from '../carrera/carrera.entity';
|
||||
import { Modulo } from '../modulo/modulo.entity';
|
||||
import { Modulo } from '../modulo/entity/modulo.entity';
|
||||
import { Operador } from '../operador/operador.entity';
|
||||
import { Usuario } from '../usuario/usuario.entity';
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ export class InstitucionService {
|
||||
return this.repository.find();
|
||||
}
|
||||
|
||||
async findById(id_institucion: number) {
|
||||
findById(id_institucion: number) {
|
||||
return this.repository.findOne({ id_institucion }).then((institucion) => {
|
||||
if (!institucion)
|
||||
throw new NotFoundException('No existe esta institución.');
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { IsNumber, IsString } from 'class-validator';
|
||||
|
||||
export class CrearModuloDto {
|
||||
export class ModuloCrearDto {
|
||||
@IsNumber()
|
||||
id_institucion: number;
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
import { IsBoolean, IsNumber, IsOptional, IsString } from 'class-validator';
|
||||
|
||||
export class ModuloUpdateDto {
|
||||
@IsNumber()
|
||||
id_modulo: number;
|
||||
|
||||
@IsString()
|
||||
@IsOptional()
|
||||
modulo?: string;
|
||||
|
||||
@IsBoolean()
|
||||
@IsOptional()
|
||||
activo?: boolean;
|
||||
}
|
||||
@@ -6,21 +6,23 @@ import {
|
||||
ManyToOne,
|
||||
JoinColumn,
|
||||
} from 'typeorm';
|
||||
import { Carrito } from '../carrito/carrito.entity';
|
||||
import { Institucion } from '../institucion/institucion.entity';
|
||||
import { Carrito } from '../../carrito/carrito.entity';
|
||||
import { Institucion } from '../../institucion/institucion.entity';
|
||||
|
||||
@Entity()
|
||||
export class Modulo {
|
||||
@PrimaryGeneratedColumn()
|
||||
id_modulo: number;
|
||||
|
||||
@Column()
|
||||
@Column({ type: String, nullable: false, length: 50 })
|
||||
modulo: string;
|
||||
|
||||
@Column({ default: false })
|
||||
@Column({ type: Boolean, nullable: false, default: false })
|
||||
activo: boolean;
|
||||
|
||||
@ManyToOne(() => Institucion, (institucion) => institucion.modulos)
|
||||
@ManyToOne(() => Institucion, (institucion) => institucion.modulos, {
|
||||
eager: true,
|
||||
})
|
||||
@JoinColumn({ name: 'id_institucion' })
|
||||
institucion: Institucion;
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import { Body, Controller, Get, Post, Query } from '@nestjs/common';
|
||||
import { Body, Controller, Get, Post, Put, Query } from '@nestjs/common';
|
||||
import { ModuloService } from './modulo.service';
|
||||
// import { Serealize } from '../interceptors/serialize.interceptor';
|
||||
import { IdInstitucionDto } from '../dto/id-institucion.dto';
|
||||
import { CrearModuloDto } from './dto/crear-modulo.dto';
|
||||
import { ModuloCrearDto } from './dto/modulo-crear.dto';
|
||||
import { ModuloUpdateDto } from './dto/modulo-update.dto';
|
||||
@Controller('modulo')
|
||||
export class ModuloController {
|
||||
constructor(private moduloService: ModuloService) {}
|
||||
@@ -15,7 +16,12 @@ export class ModuloController {
|
||||
}
|
||||
|
||||
@Post()
|
||||
create(@Body() body: CrearModuloDto) {
|
||||
create(@Body() body: ModuloCrearDto) {
|
||||
return this.moduloService.create(body.id_institucion, body.modulo);
|
||||
}
|
||||
|
||||
@Put()
|
||||
update(@Body() body: ModuloUpdateDto) {
|
||||
return this.moduloService.update(body);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { ModuloController } from './modulo.controller';
|
||||
import { Modulo } from './modulo.entity';
|
||||
import { Modulo } from './entity/modulo.entity';
|
||||
import { ModuloService } from './modulo.service';
|
||||
import { InstitucionModule } from '../institucion/institucion.module';
|
||||
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
import { ConflictException, Injectable } from '@nestjs/common';
|
||||
import {
|
||||
ConflictException,
|
||||
Injectable,
|
||||
NotFoundException,
|
||||
} from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { Repository } from 'typeorm';
|
||||
import { Modulo } from './modulo.entity';
|
||||
import { Modulo } from './entity/modulo.entity';
|
||||
import { InstitucionService } from '../institucion/institucion.service';
|
||||
|
||||
@Injectable()
|
||||
@@ -11,7 +15,14 @@ export class ModuloService {
|
||||
private institucionService: InstitucionService,
|
||||
) {}
|
||||
|
||||
async findAllByIdInstitucion(id_institucion: number) {
|
||||
findById(id_modulo: number) {
|
||||
return this.moduloRepository.findOne({ id_modulo }).then((modulo) => {
|
||||
if (!modulo) throw new NotFoundException('No existe este módulo.');
|
||||
return modulo;
|
||||
});
|
||||
}
|
||||
|
||||
findAllByIdInstitucion(id_institucion: number) {
|
||||
return this.institucionService
|
||||
.findById(id_institucion)
|
||||
.then((institucion) => this.moduloRepository.find({ institucion }));
|
||||
@@ -35,4 +46,21 @@ export class ModuloService {
|
||||
})
|
||||
.then(() => ({ message: 'Se creo correctamente el módulo.' }));
|
||||
}
|
||||
|
||||
async update(attrs: Partial<Modulo>) {
|
||||
const modulo = await this.findById(attrs.id_modulo);
|
||||
|
||||
return this.moduloRepository
|
||||
.findOne({ modulo: attrs.modulo, institucion: modulo.institucion })
|
||||
.then((existeModulo) => {
|
||||
if (existeModulo)
|
||||
throw new ConflictException(
|
||||
'Ya existe un módulo con este nombre, intente con otro nombre.',
|
||||
);
|
||||
Object.assign(modulo, attrs);
|
||||
return this.moduloRepository.save(modulo).then(() => ({
|
||||
message: 'Se actualizo correctamente la información del módulo.',
|
||||
}));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user