equipo con programas y tipos de entrada

This commit is contained in:
2022-09-28 00:08:56 -05:00
parent 6b502b9c14
commit ad79867585
10 changed files with 147 additions and 18 deletions
@@ -0,0 +1,28 @@
import { DataSource, ViewEntity, ViewColumn } from 'typeorm';
import { EquipoPrograma } from '../equipo-programa.entity';
import { Programa } from '../../../institucion-programa/entity/programa.entity';
@ViewEntity({
expression: (dataSource: DataSource) =>
dataSource
.createQueryBuilder()
.select('ep.id_equipo_programa', 'id_equipo_programa')
.addSelect('ep.id_equipo', 'id_equipo')
.addSelect('ep.id_programa', 'id_programa')
.addSelect('p.programa', 'programa')
.from(EquipoPrograma, 'ep')
.innerJoin(Programa, 'p', 'p.id_programa = ep.id_programa'),
})
export class FullInformacionEquipoProgramaView {
@ViewColumn()
id_equipo_programa: number;
@ViewColumn()
id_equipo: number;
@ViewColumn()
id_programa: number;
@ViewColumn()
programa: string;
}
@@ -4,6 +4,7 @@ import { TypeOrmModule } from '@nestjs/typeorm';
import { EquipoProgramaController } from './equipo-programa.controller';
import { EquipoProgramaService } from './equipo-programa.service';
import { EquipoPrograma } from '../equipo-programa/entity/equipo-programa.entity';
import { FullInformacionEquipoProgramaView } from './entity/views/full-informacion-equipo-programa.view';
import { InformacionEquipoProgramaView } from './entity/views/informacion-equipo-programa.view';
import { EquipoModule } from '../equipo/equipo.module';
import { InstitucionProgramaModule } from '../institucion-programa/institucion-programa.module';
@@ -14,7 +15,11 @@ import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module'
forwardRef(() => EquipoModule),
InstitucionProgramaModule,
PassportModule.register({ defaultStrategy: 'jwt' }),
TypeOrmModule.forFeature([EquipoPrograma, InformacionEquipoProgramaView]),
TypeOrmModule.forFeature([
EquipoPrograma,
FullInformacionEquipoProgramaView,
InformacionEquipoProgramaView,
]),
ValidarUsuarioModule,
],
controllers: [EquipoProgramaController],
@@ -10,6 +10,7 @@ import { Repository } from 'typeorm';
import { Equipo } from '../equipo/entity/equipo.entity';
import { EquipoPrograma } from './entity/equipo-programa.entity';
import { Programa } from '../institucion-programa/entity/programa.entity';
import { FullInformacionEquipoProgramaView } from './entity/views/full-informacion-equipo-programa.view';
import { InformacionEquipoProgramaView } from './entity/views/informacion-equipo-programa.view';
import { EquipoService } from '../equipo/equipo.service';
import { InstitucionProgramaService } from '../institucion-programa/institucion-programa.service';
@@ -20,6 +21,8 @@ export class EquipoProgramaService {
constructor(
@InjectRepository(EquipoPrograma)
private repository: Repository<EquipoPrograma>,
@InjectRepository(FullInformacionEquipoProgramaView)
private fullInformacionEquipoProgramaView: Repository<FullInformacionEquipoProgramaView>,
@InjectRepository(InformacionEquipoProgramaView)
private informacionEquipoProgramaView: Repository<InformacionEquipoProgramaView>,
@Inject(forwardRef(() => EquipoService))
@@ -147,6 +150,28 @@ export class EquipoProgramaService {
});
}
findFullInfoEquipoProgramaAllByIdEquipo(id_equipo: number) {
return this.fullInformacionEquipoProgramaView
.find({
where: { id_equipo },
})
.then((infoEquipoProgramas) => {
const equipoProgramas: EquipoPrograma[] = [];
for (let i = 0; i < infoEquipoProgramas.length; i++)
equipoProgramas.push(
this.repository.create({
id_equipo_programa: infoEquipoProgramas[i].id_equipo_programa,
programa: {
id_programa: infoEquipoProgramas[i].id_programa,
programa: infoEquipoProgramas[i].programa,
},
}),
);
return equipoProgramas;
});
}
informacionEquipoPrograma(id_equipo: number, id_programa: number) {
return this.informacionEquipoProgramaView.findOne({
where: { id_equipo, id_programa },