feat: enhance alert diagnostics by adding template listing for improved user feedback; implement fallback template search in backend for better error handling and logging
This commit is contained in:
@@ -77,8 +77,13 @@
|
|||||||
<p class="text-sm text-base-content/70">
|
<p class="text-sm text-base-content/70">
|
||||||
O template "monitoramento_alerta_sistema" não foi encontrado no banco de dados.
|
O template "monitoramento_alerta_sistema" não foi encontrado no banco de dados.
|
||||||
</p>
|
</p>
|
||||||
|
{#if config.todosTemplatesCodigos && config.todosTemplatesCodigos.length > 0}
|
||||||
|
<p class="text-xs text-base-content/60 mt-2">
|
||||||
|
<strong>Templates encontrados no banco:</strong> {config.todosTemplatesCodigos.join(', ')}
|
||||||
|
</p>
|
||||||
|
{/if}
|
||||||
<p class="text-xs text-warning mt-1">
|
<p class="text-xs text-warning mt-1">
|
||||||
💡 Execute a mutation "criarTemplatesPadrao" para criar os templates do sistema.
|
💡 Para criar os templates padrão, acesse a página de <a href="/ti/notificacoes" class="link link-primary">Notificações</a> e use o botão "Criar Templates Padrão", ou execute a mutation <code class="text-xs">criarTemplatesPadrao</code> via Convex Dashboard.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|||||||
@@ -163,6 +163,7 @@ export const verificarConfiguracaoAlertas = query({
|
|||||||
}),
|
}),
|
||||||
v.null()
|
v.null()
|
||||||
),
|
),
|
||||||
|
todosTemplatesCodigos: v.optional(v.array(v.string())), // Para debug
|
||||||
roleTiMasterExiste: v.boolean(),
|
roleTiMasterExiste: v.boolean(),
|
||||||
usuariosTiMaster: v.array(
|
usuariosTiMaster: v.array(
|
||||||
v.object({
|
v.object({
|
||||||
@@ -193,12 +194,36 @@ export const verificarConfiguracaoAlertas = query({
|
|||||||
// 1. Verificar template
|
// 1. Verificar template
|
||||||
let template = null;
|
let template = null;
|
||||||
try {
|
try {
|
||||||
|
// Tentar buscar usando índice
|
||||||
template = await ctx.db
|
template = await ctx.db
|
||||||
.query('templatesMensagens')
|
.query('templatesMensagens')
|
||||||
.withIndex('by_codigo', (q) => q.eq('codigo', 'monitoramento_alerta_sistema'))
|
.withIndex('by_codigo', (q) => q.eq('codigo', 'monitoramento_alerta_sistema'))
|
||||||
.first();
|
.first();
|
||||||
|
|
||||||
|
// Se não encontrou com índice, tentar busca direta
|
||||||
|
if (!template) {
|
||||||
|
const todosTemplates = await ctx.db.query('templatesMensagens').collect();
|
||||||
|
template = todosTemplates.find(
|
||||||
|
(t) => t.codigo?.toLowerCase() === 'monitoramento_alerta_sistema'.toLowerCase()
|
||||||
|
) || null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (template) {
|
||||||
|
console.log('✅ Template encontrado:', template.codigo, template.nome);
|
||||||
|
} else {
|
||||||
|
console.warn('⚠️ Template monitoramento_alerta_sistema não encontrado no banco');
|
||||||
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.warn('Erro ao buscar template:', error);
|
console.error('❌ Erro ao buscar template:', error);
|
||||||
|
// Tentar busca alternativa sem índice
|
||||||
|
try {
|
||||||
|
const todosTemplates = await ctx.db.query('templatesMensagens').collect();
|
||||||
|
template = todosTemplates.find(
|
||||||
|
(t) => t.codigo?.toLowerCase() === 'monitoramento_alerta_sistema'.toLowerCase()
|
||||||
|
) || null;
|
||||||
|
} catch (fallbackError) {
|
||||||
|
console.error('❌ Erro na busca alternativa:', fallbackError);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. Verificar role TI_MASTER
|
// 2. Verificar role TI_MASTER
|
||||||
@@ -249,7 +274,17 @@ export const verificarConfiguracaoAlertas = query({
|
|||||||
console.warn('Erro ao buscar configuração SMTP:', error);
|
console.warn('Erro ao buscar configuração SMTP:', error);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 5. Verificar fila de emails
|
// 5. Listar todos os templates para debug (opcional)
|
||||||
|
let todosTemplatesCodigos: string[] = [];
|
||||||
|
try {
|
||||||
|
const todosTemplates = await ctx.db.query('templatesMensagens').collect();
|
||||||
|
todosTemplatesCodigos = todosTemplates.map((t) => t.codigo || '').filter(Boolean);
|
||||||
|
console.log('📋 Templates encontrados no banco:', todosTemplatesCodigos);
|
||||||
|
} catch (error) {
|
||||||
|
console.warn('Erro ao listar templates para debug:', error);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 6. Verificar fila de emails
|
||||||
let emailsPendentes = 0;
|
let emailsPendentes = 0;
|
||||||
let emailsFalha = 0;
|
let emailsFalha = 0;
|
||||||
try {
|
try {
|
||||||
@@ -260,7 +295,7 @@ export const verificarConfiguracaoAlertas = query({
|
|||||||
console.warn('Erro ao buscar emails:', error);
|
console.warn('Erro ao buscar emails:', error);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 6. Verificar alertas
|
// 7. Verificar alertas
|
||||||
let alertasAtivos = 0;
|
let alertasAtivos = 0;
|
||||||
let alertasComEmail = 0;
|
let alertasComEmail = 0;
|
||||||
try {
|
try {
|
||||||
@@ -283,6 +318,7 @@ export const verificarConfiguracaoAlertas = query({
|
|||||||
htmlCorpo: template.htmlCorpo
|
htmlCorpo: template.htmlCorpo
|
||||||
}
|
}
|
||||||
: null,
|
: null,
|
||||||
|
todosTemplatesCodigos: todosTemplatesCodigos.length > 0 ? todosTemplatesCodigos : undefined,
|
||||||
roleTiMasterExiste: !!roleTiMaster,
|
roleTiMasterExiste: !!roleTiMaster,
|
||||||
usuariosTiMaster,
|
usuariosTiMaster,
|
||||||
configSmtpAtiva: !!configSmtp,
|
configSmtpAtiva: !!configSmtp,
|
||||||
@@ -306,6 +342,7 @@ export const verificarConfiguracaoAlertas = query({
|
|||||||
return {
|
return {
|
||||||
templateExiste: false,
|
templateExiste: false,
|
||||||
templateInfo: null,
|
templateInfo: null,
|
||||||
|
todosTemplatesCodigos: undefined,
|
||||||
roleTiMasterExiste: false,
|
roleTiMasterExiste: false,
|
||||||
usuariosTiMaster: [],
|
usuariosTiMaster: [],
|
||||||
configSmtpAtiva: false,
|
configSmtpAtiva: false,
|
||||||
|
|||||||
Reference in New Issue
Block a user