diff --git a/src/app.module.ts b/src/app.module.ts index c30e05f..2b792a8 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -76,6 +76,7 @@ import { InformacionEquipoView } from './equipo/entity/views/informacion-equipo. import { InformacionEquipoProgramaView } from './equipo-programa/entity/views/informacion-equipo-programa.view'; import { InformacionEquipoTipoEntradaView } from './equipo-tipo-entrada/entity/views/informacion-equipo-tipo-entrada.view'; import { InformacionInstitucionView } from './institucion/entity/views/informacion-institucion.view'; +import { MinInformacionInstitucionView } from './institucion/entity/views/min-informacion-institucion.view'; import { InformacionModuloView } from './modulo/entity/views/informacion-modulo.view'; import { FullInformacionMultaView } from './multa/entity/views/full-informacion-multa.view'; import { InformacionMultaView } from './multa/entity/views/informacion-multa.view'; @@ -147,6 +148,7 @@ import { InformacionUsuarioView } from './usuario/entity/views/informacion-usuar InformacionEquipoProgramaView, InformacionEquipoTipoEntradaView, InformacionInstitucionView, + MinInformacionInstitucionView, InformacionModuloView, FullInformacionMultaView, InformacionMultaView, diff --git a/src/institucion/entity/views/informacion-institucion.view.ts b/src/institucion/entity/views/informacion-institucion.view.ts index 221cd78..bb62f59 100644 --- a/src/institucion/entity/views/informacion-institucion.view.ts +++ b/src/institucion/entity/views/informacion-institucion.view.ts @@ -6,29 +6,9 @@ import { Institucion } from '../institucion.entity'; dataSource .createQueryBuilder() .select('i.id_institucion', 'id_institucion') - .addSelect('i.activo', 'activo') - .addSelect('i.correo', 'correo') - .addSelect('i.dominio', 'dominio') - .addSelect('i.institucion', 'institucion') - .addSelect('i.responsable', 'responsable') .from(Institucion, 'i'), }) export class InformacionInstitucionView { @ViewColumn() id_institucion: number; - - @ViewColumn() - activo: number; - - @ViewColumn() - correo: string; - - @ViewColumn() - dominio: string; - - @ViewColumn() - institucion: string; - - @ViewColumn() - responsable: string; } diff --git a/src/institucion/entity/views/min-informacion-institucion.view.ts b/src/institucion/entity/views/min-informacion-institucion.view.ts new file mode 100644 index 0000000..ef8b430 --- /dev/null +++ b/src/institucion/entity/views/min-informacion-institucion.view.ts @@ -0,0 +1,34 @@ +import { DataSource, ViewEntity, ViewColumn } from 'typeorm'; +import { Institucion } from '../institucion.entity'; + +@ViewEntity({ + expression: (dataSource: DataSource) => + dataSource + .createQueryBuilder() + .select('i.id_institucion', 'id_institucion') + .addSelect('i.activo', 'activo') + .addSelect('i.correo', 'correo') + .addSelect('i.dominio', 'dominio') + .addSelect('i.institucion', 'institucion') + .addSelect('i.responsable', 'responsable') + .from(Institucion, 'i'), +}) +export class MinInformacionInstitucionView { + @ViewColumn() + id_institucion: number; + + @ViewColumn() + activo: number; + + @ViewColumn() + correo: string; + + @ViewColumn() + dominio: string; + + @ViewColumn() + institucion: string; + + @ViewColumn() + responsable: string; +} diff --git a/src/institucion/institucion.module.ts b/src/institucion/institucion.module.ts index 9cf4498..98b4972 100644 --- a/src/institucion/institucion.module.ts +++ b/src/institucion/institucion.module.ts @@ -5,12 +5,17 @@ import { InstitucionController } from './institucion.controller'; import { InstitucionService } from './institucion.service'; import { Institucion } from './entity/institucion.entity'; import { InformacionInstitucionView } from './entity/views/informacion-institucion.view'; +import { MinInformacionInstitucionView } from './entity/views/min-informacion-institucion.view'; import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module'; @Module({ imports: [ PassportModule.register({ defaultStrategy: 'jwt' }), - TypeOrmModule.forFeature([Institucion, InformacionInstitucionView]), + TypeOrmModule.forFeature([ + Institucion, + InformacionInstitucionView, + MinInformacionInstitucionView, + ]), ValidarUsuarioModule, ], controllers: [InstitucionController], diff --git a/src/institucion/institucion.service.ts b/src/institucion/institucion.service.ts index d7b515a..1cea3b3 100644 --- a/src/institucion/institucion.service.ts +++ b/src/institucion/institucion.service.ts @@ -8,6 +8,7 @@ import { FindOperator, IsNull, Not, Repository } from 'typeorm'; import { Institucion } from './entity/institucion.entity'; import { Operador } from '../operador/entity/operador.entity'; import { InformacionInstitucionView } from './entity/views/informacion-institucion.view'; +import { MinInformacionInstitucionView } from './entity/views/min-informacion-institucion.view'; @Injectable() export class InstitucionService { @@ -15,6 +16,8 @@ export class InstitucionService { @InjectRepository(Institucion) private repository: Repository, @InjectRepository(InformacionInstitucionView) private informacionInstitucionView: Repository, + @InjectRepository(MinInformacionInstitucionView) + private minInformacionInstitucionView: Repository, ) {} findAll(activo = false) { @@ -54,7 +57,7 @@ export class InstitucionService { if (activo) busqueda.activo = activo; if (responsable) busqueda.responsable = Not(IsNull()); - return this.informacionInstitucionView + return this.minInformacionInstitucionView .find({ where: busqueda, order: { institucion: 'ASC' } }) .then((infoInstituciones) => { const instituciones: Institucion[] = [];