44a84301a3
- 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
48 lines
1.4 KiB
JavaScript
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 };
|