utn-cli 2.1.42 → 2.1.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -153,7 +153,7 @@ export async function initBackend() {
153
153
 
154
154
  export async function updateBackend(opciones = { cerrarAlFinalizar: true }) {
155
155
  console.log('Actualizando el proyecto de backend...');
156
- const archivosAExcluir = ['InformacionDelModulo.json', 'rutas.js', 'Monitoreo.js', 'API.js', 'NOMBRE_DEL_CANONICO_DEL_PROYECTO.rest'];
156
+ const archivosAExcluir = ['InformacionDelModulo.json', 'rutas.js', 'API.js', 'NOMBRE_DEL_CANONICO_DEL_PROYECTO.rest'];
157
157
  const directoriodePlantillas = path.join(__dirname, '../templates/backend');
158
158
  const directorioDestino = process.cwd();
159
159
 
@@ -174,6 +174,18 @@ export async function updateBackend(opciones = { cerrarAlFinalizar: true }) {
174
174
  mergeRutasBackend(rutaRutasDestino, rutaRutasTemplate);
175
175
  }
176
176
 
177
+ // Validar y agregar ManejadorDeErrores en rutas/API.js
178
+ const rutaApiRutasDestino = path.join(directorioDestino, 'rutas', 'API.js');
179
+ if (fs.existsSync(rutaApiRutasDestino)) {
180
+ let contenidoApiRutas = fs.readFileSync(rutaApiRutasDestino, 'utf-8');
181
+ const importManejador = "const ManejadorDeErrores = require('../servicios/Nucleo/ManejadorDeErrores.js');";
182
+ const regexManejador = /(?:const|let|var)\s+ManejadorDeErrores\s*=\s*require\(/;
183
+ if (!regexManejador.test(contenidoApiRutas)) {
184
+ console.log('Agregando ManejadorDeErrores a rutas/API.js...');
185
+ fs.writeFileSync(rutaApiRutasDestino, importManejador + '\n' + contenidoApiRutas);
186
+ }
187
+ }
188
+
177
189
  mostrarVersion(path.join(__dirname, '../package.json')); // Show main CLI version
178
190
 
179
191
  const gitignoreOriginal = path.join(directorioDestino, 'gitignore');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "utn-cli",
3
- "version": "2.1.42",
3
+ "version": "2.1.44",
4
4
  "description": "Herramienta CLI unificada para la gestión de plantillas en SIGU.",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -2,7 +2,7 @@ const express = require('express');
2
2
  const Router = express.Router();
3
3
 
4
4
  const Miscelaneo = require('../servicios/Nucleo/Miscelaneas.js');
5
- const { moitoreo } = require('../servicios/Nucleo/Monitoreo.js');
5
+ const { monitoreo } = require('../servicios/Nucleo/Monitoreo.js');
6
6
  const ManejadorDeErrores = require('../servicios/Nucleo/ManejadorDeErrores.js');
7
7
 
8
8
  // Router.post("/DescargarArchivo", async (solicitud, respuesta) => {
@@ -15,7 +15,7 @@ const ManejadorDeErrores = require('../servicios/Nucleo/ManejadorDeErrores.js');
15
15
  Router.post('/monitoreo/', async (solicitud, respuesta, next) => {
16
16
  try {
17
17
  if (await Miscelaneo.validarTokenV2(solicitud.headers.authorization) && await Miscelaneo.validarAccesoDelOrigen(solicitud)) {
18
- if (await moitoreo()) {
18
+ if (await monitoreo()) {
19
19
  return respuesta.status(200).json({ 'Estado:': 'Ok' });
20
20
  } else {
21
21
  return respuesta.status(500).json({ 'Estado:': 'Error' });
@@ -30,7 +30,7 @@ Router.get('/monitoreoV2', async (solicitud, respuesta, next) => {
30
30
  try {
31
31
  if (await Miscelaneo.validarTokenV2(solicitud.headers.authorization) && await Miscelaneo.validarAccesoDelOrigen(solicitud)) {
32
32
  try {
33
- if (await moitoreo()) {
33
+ if (await monitoreo()) {
34
34
  return respuesta.status(200).json({ 'Estado:': 'Ok' });
35
35
  } else {
36
36
  return respuesta.status(500).json({ 'Estado:': 'Error' });
@@ -28,6 +28,13 @@ class ConsentimientoInformado {
28
28
  , [await this.ConsentimientoInformadoId(), Datos.LastUser.split("@")[0], Datos.LastUser]);
29
29
  }
30
30
 
31
+ async ExisteTablaArchivos() {
32
+ // Por agilidad no se usa el nombre formal de la tabla
33
+ const Resultado = await ejecutarConsulta("SELECT COUNT(*) AS `Total` FROM `information_schema`.`tables` WHERE `table_schema` = ? AND `table_name` = 'Archivos'"
34
+ , [Miscelaneas.obtenerNombreLaBaseDeDatos()]);
35
+ return Resultado[0]['Total'] > 0;
36
+ }
37
+
31
38
  async creacionDeConsetimientoInformado() {
32
39
  const Consentimiento = "<h2>Aviso de actualización del Sistema SIGU</h2><p><strong>Estimada persona usuaria:</strong></p><p>Le informamos que el módulo del Sistema Integrado de Gestión Universitaria (SIGU) ha sido actualizado a una nueva versión, la cual incorpora mejoras funcionales, ajustes técnicos y actualizaciones orientadas a optimizar la experiencia de uso, fortalecer la seguridad de la información y garantizar el cumplimiento de los procesos institucionales.</p><p>Antes de continuar utilizando este módulo, le solicitamos leer atentamente y aceptar las siguientes condiciones:</p><ul><li>Reconozco que estoy utilizando una versión actualizada del sistema.</li><li>Comprendo que esta versión puede incluir cambios en funcionalidades, interfaces y flujos de trabajo.</li><li>Me comprometo a utilizar el sistema de manera responsable, ética y conforme a la normativa institucional vigente.</li><li>Acepto que el uso del sistema podrá ser monitoreado con fines administrativos, académicos y de seguridad.</li></ul><p>El uso continuo del sistema implica su conformidad con las presentes condiciones y con las políticas institucionales aplicables.</p><p>En caso de presentar dudas, consultas o inconvenientes, puede comunicarse con el área de soporte técnico institucional a través de los canales oficiales.</p><hr><p>Al seleccionar la opción <strong>“Aceptar”</strong>, usted manifiesta expresamente su conformidad con el uso de esta nueva versión del módulo correspondiente del Sistema SIGU.</p>";
33
40
  return await ejecutarConsultaSIGU("UPDATE `SIGU`.`SIGU_ConsentimientosInformadosV2` SET `Estado` = 'Inactivo' WHERE\
@@ -1,15 +1,26 @@
1
1
  const Miscelaneo = require('./Miscelaneas.js');
2
2
  const ManejadorDeErrores = require('./ManejadorDeErrores.js');
3
3
  const API = require('../API.js');
4
+ const ConsentimientoInformado = require('./ConsentimientoInformado.js');
4
5
 
5
- async function moitoreo() {
6
+ async function monitoreo() {
6
7
 
7
8
  try {
8
9
  const Resultado = await Miscelaneo.obtenerSedes();
9
10
  if (Resultado.length === 0) {
10
11
  throw new ManejadorDeErrores(ManejadorDeErrores.mensajeDeErrorAccesoAAPI(), ManejadorDeErrores.obtenerNumeroDeLinea(), false);
11
12
  }
12
- console.log('Monitoreo Paso 1 de 1: Ok. Miscelaneo.obtenerSedes()');
13
+ console.log('Monitoreo Paso 1 de 2: Ok. Miscelaneo.obtenerSedes()');
14
+ } catch (error) {
15
+ console.error(error);
16
+ return false;
17
+ }
18
+ try {
19
+ const Resultado = await ConsentimientoInformado.ExisteTablaArchivos();
20
+ if (!Resultado) {
21
+ throw new ManejadorDeErrores(ManejadorDeErrores.mensajeDeErrorAccesoAAPI(), ManejadorDeErrores.obtenerNumeroDeLinea(), false);
22
+ }
23
+ console.log('Monitoreo Paso 2 de 2: Ok. ConsentimientoInformado.ExisteTablaArchivos()');
13
24
  } catch (error) {
14
25
  console.error(error);
15
26
  return false;
@@ -62,4 +73,4 @@ async function moitoreo() {
62
73
  return true;
63
74
  }
64
75
 
65
- module.exports = { moitoreo };
76
+ module.exports = { monitoreo };