Files
chatc2/src/services/configService.js
T
AyronSantos 44a84301a3 fix: remove cache do configService; remove cacheService.js (nao usado)
- configService agora le direto do banco (sem TTL, sem stale data)
- invalidarConfig virou no-op (não há cache para invalidar)
- cacheService.js removido (so era usado pelo configService)
- endpoint /metrics sem referencia ao cacheService
2026-07-01 17:07:18 +00:00

48 lines
1.4 KiB
JavaScript

/**
* Serviço de configuração da empresa (sem cache).
*
* Lê direto do banco — sem TTL, sem stale data.
* As flags CFE_* são consultadas a cada operação, então refletem
* imediatamente qualquer alteração salva em Settings.
*/
const db = require('../database');
/**
* Retorna a configuração completa de uma empresa (direto do banco).
*
* @param {string} alias
* @param {number} empresaId
* @returns {Promise<object>}
*/
async function getConfig(alias, empresaId) {
await garantirRegistro(alias, empresaId);
const result = await db.query(alias,
'SELECT * FROM CHATC2_CONFIGURACOES_EMPRESA WHERE CFE_EMPRESA_ID = ?',
[empresaId]);
return result[0] || {};
}
/** No-op: não há cache para invalidar */
function invalidarConfig() {}
async function garantirRegistro(alias, empresaId) {
try {
const existe = await db.query(alias,
'SELECT COUNT(*) AS CT FROM CHATC2_CONFIGURACOES_EMPRESA WHERE CFE_EMPRESA_ID = ?',
[empresaId]);
if (existe[0]?.CT === 0) {
await db.execute(alias, `
INSERT INTO CHATC2_CONFIGURACOES_EMPRESA (CFE_EMPRESA_ID)
VALUES (?)
`, [empresaId]);
}
} catch (e) {
if (!e.message.includes('unknown') && !e.message.includes('não encontrado')) {
console.error('[ConfigService] Erro ao garantir registro:', e.message.substring(0, 100));
}
}
}
module.exports = { getConfig, invalidarConfig };