diff --git a/api-gateway/src/index.ts b/api-gateway/src/index.ts index 6b16323..8d2a579 100644 --- a/api-gateway/src/index.ts +++ b/api-gateway/src/index.ts @@ -153,7 +153,11 @@ if (config.automatizaciones.enabled) { } // Precarga de configuraciones desde DB (modo_local_forzado, etc.) -void configService.refrescarCache().catch((err: unknown) => +void configService.refrescarCache().then(() => { + const modoLocal = configService.obtenerConfigSync('modo_local_forzado') === 'true' + saludMonday.setModoLocalDb(modoLocal) + if (modoLocal) console.log('[startup] MODO LOCAL FORZADO activo (DB)') +}).catch((err: unknown) => console.error('[startup] Error precargando config cache:', err), ) diff --git a/api-gateway/src/services/salud-monday.service.ts b/api-gateway/src/services/salud-monday.service.ts index d536912..ca5d5a7 100644 --- a/api-gateway/src/services/salud-monday.service.ts +++ b/api-gateway/src/services/salud-monday.service.ts @@ -20,6 +20,9 @@ export const FALLOS_PARA_CAER = 3 export type PingMonday = () => Promise export class SaludMondayService { + private _modoLocalDb = false + + setModoLocalDb(v: boolean) { this._modoLocalDb = v } private mondayOk = true private fallosConsecutivos = 0 private pingFn: PingMonday | null = null @@ -58,12 +61,20 @@ export class SaludMondayService { try { // eslint-disable-next-line @typescript-eslint/no-require-imports const cs = require('./config.service.js') as typeof import('./config.service.js') - forzadoDb = cs.obtenerConfigSync('modo_local_forzado') === 'true' + const syncVal = cs.obtenerConfigSync('modo_local_forzado') + if (syncVal !== undefined) { + forzadoDb = syncVal === 'true' + } else { + // Cache no cargado aún: intentar async (fire-and-forget para la próxima vez) + cs.obtenerConfig('modo_local_forzado').then((v) => { + if (v === 'true') this._modoLocalDb = true + }).catch(() => {}) + } } catch { // configService no disponible (tests aislados, DB no inicializada) } const forzadoEnv = process.env.MODO_LOCAL_FORZADO === 'true' - return this.mondayOk && !forzadoDb && !forzadoEnv + return this.mondayOk && !forzadoDb && !this._modoLocalDb && !forzadoEnv } /**