institucion final
This commit is contained in:
@@ -80,8 +80,6 @@ import { FullInformacionEquipoProgramaView } from './equipo-programa/entity/view
|
||||
import { InformacionEquipoProgramaView } from './equipo-programa/entity/views/informacion-equipo-programa.view';
|
||||
import { FullInformacionEquipoTipoEntradaView } from './equipo-tipo-entrada/entity/views/full-informacion-equipo-tipo-entrada.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 { MinInformacionModuloView } from './modulo/entity/views/min-informacion-modulo.view';
|
||||
import { FullInformacionMultaView } from './multa/entity/views/full-informacion-multa.view';
|
||||
@@ -159,8 +157,6 @@ import { InformacionUsuarioView } from './usuario/entity/views/informacion-usuar
|
||||
InformacionEquipoProgramaView,
|
||||
FullInformacionEquipoTipoEntradaView,
|
||||
InformacionEquipoTipoEntradaView,
|
||||
InformacionInstitucionView,
|
||||
MinInformacionInstitucionView,
|
||||
InformacionModuloView,
|
||||
MinInformacionModuloView,
|
||||
FullInformacionMultaView,
|
||||
|
||||
@@ -93,7 +93,7 @@ export class CarreraProgramaService {
|
||||
id_institucion: number,
|
||||
) {
|
||||
return this.institucionService
|
||||
.findById(id_institucion)
|
||||
.findInfoInstitucionById(id_institucion)
|
||||
.then((institucion) => {
|
||||
if (usuarioOperador instanceof Operador) {
|
||||
if (
|
||||
@@ -128,9 +128,7 @@ export class CarreraProgramaService {
|
||||
i: 'ic.institucion',
|
||||
},
|
||||
},
|
||||
where: {
|
||||
institucionCarrera: { institucion },
|
||||
},
|
||||
where: { institucionCarrera: { institucion } },
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ export class InstitucionCarreraService {
|
||||
|
||||
findAllByIdInstitucion(id_institucion: number) {
|
||||
return this.institucionService
|
||||
.findById(id_institucion)
|
||||
.findInfoInstitucionById(id_institucion)
|
||||
.then((institucion) =>
|
||||
this.institucionCarreraRepository.find({
|
||||
where: {
|
||||
@@ -78,7 +78,7 @@ export class InstitucionCarreraService {
|
||||
|
||||
findInstitucionProfesor(id_institucion: number) {
|
||||
return this.institucionService
|
||||
.findById(id_institucion)
|
||||
.findInfoInstitucionById(id_institucion)
|
||||
.then((institucion) =>
|
||||
this.institucionCarreraRepository.findOne({
|
||||
where: { carrera: { id_carrera: 1 }, institucion },
|
||||
|
||||
@@ -22,7 +22,7 @@ export class InstitucionDiaService {
|
||||
|
||||
findAllByIdInstitucion(id_institucion: number) {
|
||||
return this.institucionService
|
||||
.findById(id_institucion)
|
||||
.findInfoInstitucionById(id_institucion)
|
||||
.then((institucion) =>
|
||||
this.repository.find({
|
||||
where: { institucion },
|
||||
@@ -62,7 +62,7 @@ export class InstitucionDiaService {
|
||||
'No se puede pedir equipo de cómputo los sabados y domingos.',
|
||||
);
|
||||
return this.institucionService
|
||||
.findById(id_institucion)
|
||||
.findInfoInstitucionById(id_institucion)
|
||||
.then((institucion) =>
|
||||
this.findByInstitucionDia(institucion, ahora.weekday()),
|
||||
);
|
||||
|
||||
@@ -54,7 +54,7 @@ export class InstitucionInfraccionService {
|
||||
|
||||
findAllByIdInstitucion(id_institucion: number) {
|
||||
return this.institucionService
|
||||
.findById(id_institucion)
|
||||
.findInfoInstitucionById(id_institucion)
|
||||
.then((institucion) =>
|
||||
this.institucionInfraccionRepository
|
||||
.createQueryBuilder('ii')
|
||||
@@ -62,9 +62,7 @@ export class InstitucionInfraccionService {
|
||||
.innerJoinAndSelect('ii.institucion', 'i')
|
||||
.where(
|
||||
'i.id_institucion = :id_institucion && inf.id_infraccion != 1',
|
||||
{
|
||||
id_institucion: institucion.id_institucion,
|
||||
},
|
||||
{ id_institucion: institucion.id_institucion },
|
||||
)
|
||||
.orderBy('inf.infraccion')
|
||||
.getMany(),
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
import { DataSource, ViewEntity, ViewColumn } from 'typeorm';
|
||||
import { Institucion } from '../institucion.entity';
|
||||
|
||||
@ViewEntity({
|
||||
expression: (dataSource: DataSource) =>
|
||||
dataSource
|
||||
.createQueryBuilder()
|
||||
.select('i.id_institucion', 'id_institucion')
|
||||
.from(Institucion, 'i')
|
||||
.orderBy('institucion', 'ASC'),
|
||||
})
|
||||
export class InformacionInstitucionView {
|
||||
@ViewColumn()
|
||||
id_institucion: number;
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
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')
|
||||
.orderBy('institucion', 'ASC'),
|
||||
})
|
||||
export class MinInformacionInstitucionView {
|
||||
@ViewColumn()
|
||||
id_institucion: number;
|
||||
|
||||
@ViewColumn()
|
||||
activo: number;
|
||||
|
||||
@ViewColumn()
|
||||
correo: string;
|
||||
|
||||
@ViewColumn()
|
||||
dominio: string;
|
||||
|
||||
@ViewColumn()
|
||||
institucion: string;
|
||||
|
||||
@ViewColumn()
|
||||
responsable: string;
|
||||
}
|
||||
@@ -41,7 +41,7 @@ export class InstitucionController {
|
||||
description: 'Endpoint que retorna todas las instituciones activas.',
|
||||
})
|
||||
activas() {
|
||||
return this.institucionService.findMinInfoInstitucionAll(1);
|
||||
return this.institucionService.findMinInfoInstitucionAll(true);
|
||||
}
|
||||
|
||||
@Serealize(InstitucionMinOutputDto)
|
||||
@@ -99,7 +99,7 @@ export class InstitucionController {
|
||||
const superAdmin: Operador = req.user.operador;
|
||||
|
||||
this.validarUsuarioService.validarSuperAdmin(superAdmin);
|
||||
return this.institucionService.findMinInfoInstitucionAll(0, true);
|
||||
return this.institucionService.findMinInfoInstitucionAll(false, true);
|
||||
}
|
||||
|
||||
@Put()
|
||||
|
||||
@@ -4,18 +4,12 @@ import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
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,
|
||||
MinInformacionInstitucionView,
|
||||
]),
|
||||
TypeOrmModule.forFeature([Institucion]),
|
||||
ValidarUsuarioModule,
|
||||
],
|
||||
controllers: [InstitucionController],
|
||||
|
||||
@@ -7,20 +7,13 @@ import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { FindOptionsWhere, 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 {
|
||||
constructor(
|
||||
@InjectRepository(Institucion) private repository: Repository<Institucion>,
|
||||
@InjectRepository(InformacionInstitucionView)
|
||||
private informacionInstitucionView: Repository<InformacionInstitucionView>,
|
||||
@InjectRepository(MinInformacionInstitucionView)
|
||||
private minInformacionInstitucionView: Repository<MinInformacionInstitucionView>,
|
||||
) {}
|
||||
|
||||
// Posiblemente desaparezca
|
||||
findById(id_institucion: number) {
|
||||
return this.repository
|
||||
.findOne({ where: { id_institucion } })
|
||||
@@ -32,54 +25,35 @@ export class InstitucionService {
|
||||
}
|
||||
|
||||
findInfoInstitucionById(id_institucion: number) {
|
||||
return this.informacionInstitucionView
|
||||
.findOne({ where: { id_institucion } })
|
||||
.then((infoInstitucion) => {
|
||||
if (!infoInstitucion)
|
||||
return this.repository
|
||||
.findOne({ select: ['id_institucion'], where: { id_institucion } })
|
||||
.then((institucion) => {
|
||||
if (!institucion)
|
||||
throw new NotFoundException('No existe este id institución.');
|
||||
return this.repository.create({
|
||||
id_institucion: infoInstitucion.id_institucion,
|
||||
});
|
||||
return institucion;
|
||||
});
|
||||
}
|
||||
|
||||
findInfoInstitucionAll() {
|
||||
return this.informacionInstitucionView.find().then((infoInstituciones) => {
|
||||
const instituciones: Institucion[] = [];
|
||||
|
||||
for (let i = 0; i < infoInstituciones.length; i++)
|
||||
instituciones.push(
|
||||
this.repository.create({
|
||||
id_institucion: infoInstituciones[i].id_institucion,
|
||||
}),
|
||||
);
|
||||
return instituciones;
|
||||
});
|
||||
return this.repository.find({ select: ['id_institucion'] });
|
||||
}
|
||||
|
||||
findMinInfoInstitucionAll(activo = 0, responsable = false) {
|
||||
const busqueda: FindOptionsWhere<MinInformacionInstitucionView> = {};
|
||||
findMinInfoInstitucionAll(activo = false, responsable = false) {
|
||||
const busqueda: FindOptionsWhere<Institucion> = {};
|
||||
|
||||
if (activo) busqueda.activo = activo;
|
||||
if (responsable) busqueda.responsable = Not(IsNull());
|
||||
return this.minInformacionInstitucionView
|
||||
.find({ where: busqueda })
|
||||
.then((infoInstituciones) => {
|
||||
const instituciones: Institucion[] = [];
|
||||
|
||||
for (let i = 0; i < infoInstituciones.length; i++)
|
||||
instituciones.push(
|
||||
this.repository.create({
|
||||
id_institucion: infoInstituciones[i].id_institucion,
|
||||
activo: infoInstituciones[i].activo === 1,
|
||||
correo: infoInstituciones[i].correo,
|
||||
dominio: infoInstituciones[i].dominio,
|
||||
institucion: infoInstituciones[i].institucion,
|
||||
responsable: infoInstituciones[i].responsable,
|
||||
}),
|
||||
);
|
||||
return instituciones;
|
||||
});
|
||||
return this.repository.find({
|
||||
select: [
|
||||
'id_institucion',
|
||||
'activo',
|
||||
'correo',
|
||||
'dominio',
|
||||
'institucion',
|
||||
'responsable',
|
||||
],
|
||||
where: busqueda,
|
||||
});
|
||||
}
|
||||
|
||||
update(admin: Operador, attrs: Partial<Institucion>) {
|
||||
|
||||
@@ -66,21 +66,21 @@ export class UploadFileController {
|
||||
);
|
||||
}
|
||||
|
||||
@Get('download-logo')
|
||||
@UseGuards(AuthGuard('jwt'))
|
||||
@ApiBearerAuth('jwt')
|
||||
downloadLogo(
|
||||
@Request() req,
|
||||
@Response() res,
|
||||
@Query() query: IdInstitucionDto,
|
||||
) {
|
||||
const operador: Operador = req.user.operador;
|
||||
// @Get('download-logo')
|
||||
// @UseGuards(AuthGuard('jwt'))
|
||||
// @ApiBearerAuth('jwt')
|
||||
// downloadLogo(
|
||||
// @Request() req,
|
||||
// @Response() res,
|
||||
// @Query() query: IdInstitucionDto,
|
||||
// ) {
|
||||
// const operador: Operador = req.user.operador;
|
||||
|
||||
this.validarUsuarioService.validarAdminOperador(operador);
|
||||
return this.uploadFileService
|
||||
.downloadLogo(parseInt(query.id_institucion))
|
||||
.then((logo) => res.download(logo));
|
||||
}
|
||||
// this.validarUsuarioService.validarAdminOperador(operador);
|
||||
// return this.uploadFileService
|
||||
// .downloadLogo(parseInt(query.id_institucion))
|
||||
// .then((logo) => res.download(logo));
|
||||
// }
|
||||
|
||||
@Get('download-plantilla-equipos')
|
||||
@UseGuards(AuthGuard('jwt'))
|
||||
|
||||
@@ -116,9 +116,9 @@ export class UploadFileService {
|
||||
}
|
||||
|
||||
downloadLogo(id_institucion: number) {
|
||||
return this.institucionService
|
||||
.findById(id_institucion)
|
||||
.then((institucion) => institucion.logo);
|
||||
// return this.institucionService
|
||||
// .findById(id_institucion)
|
||||
// .then((institucion) => institucion.logo);
|
||||
}
|
||||
|
||||
errorBase(index) {
|
||||
|
||||
Reference in New Issue
Block a user