feat: update email notification handling to use scheduler for template sending, with improved error handling for fallback scenarios
This commit is contained in:
@@ -364,9 +364,9 @@ export const criarSolicitacao = mutation({
|
||||
urlSistema = `http://${urlSistema}`;
|
||||
}
|
||||
|
||||
// Enviar email ao gestor usando template
|
||||
// Enviar email ao gestor usando template (agendado via scheduler)
|
||||
try {
|
||||
await ctx.runAction(api.email.enviarEmailComTemplate, {
|
||||
await ctx.scheduler.runAfter(0, api.email.enviarEmailComTemplate, {
|
||||
destinatario: gestorUsuario.email,
|
||||
destinatarioId: gestorId,
|
||||
templateCodigo: "ausencia_solicitada",
|
||||
@@ -381,8 +381,11 @@ export const criarSolicitacao = mutation({
|
||||
enviadoPor: funcionarioUsuario._id,
|
||||
});
|
||||
} catch (error) {
|
||||
// Fallback para envio direto se template não existir
|
||||
console.warn("Template ausencia_solicitada não encontrado, usando envio direto:", error);
|
||||
// Fallback para envio direto se houver erro ao agendar ou processar o template
|
||||
console.warn(
|
||||
"Erro ao agendar envio de email com template ausencia_solicitada, usando envio direto:",
|
||||
error,
|
||||
);
|
||||
await ctx.runMutation(api.email.enfileirarEmail, {
|
||||
destinatario: gestorUsuario.email,
|
||||
destinatarioId: gestorId,
|
||||
@@ -506,9 +509,9 @@ export const aprovar = mutation({
|
||||
urlSistema = `http://${urlSistema}`;
|
||||
}
|
||||
|
||||
// Enviar email ao funcionário usando template
|
||||
// Enviar email ao funcionário usando template (agendado via scheduler)
|
||||
try {
|
||||
await ctx.runAction(api.email.enviarEmailComTemplate, {
|
||||
await ctx.scheduler.runAfter(0, api.email.enviarEmailComTemplate, {
|
||||
destinatario: funcionarioUsuario.email,
|
||||
destinatarioId: funcionarioUsuario._id,
|
||||
templateCodigo: "ausencia_aprovada",
|
||||
@@ -523,8 +526,11 @@ export const aprovar = mutation({
|
||||
enviadoPor: args.gestorId,
|
||||
});
|
||||
} catch (error) {
|
||||
// Fallback para envio direto se template não existir
|
||||
console.warn("Template ausencia_aprovada não encontrado, usando envio direto:", error);
|
||||
// Fallback para envio direto se houver erro ao agendar ou processar o template
|
||||
console.warn(
|
||||
"Erro ao agendar envio de email com template ausencia_aprovada, usando envio direto:",
|
||||
error,
|
||||
);
|
||||
await ctx.runMutation(api.email.enfileirarEmail, {
|
||||
destinatario: funcionarioUsuario.email,
|
||||
destinatarioId: funcionarioUsuario._id,
|
||||
@@ -649,9 +655,9 @@ export const reprovar = mutation({
|
||||
urlSistema = `http://${urlSistema}`;
|
||||
}
|
||||
|
||||
// Enviar email ao funcionário usando template
|
||||
// Enviar email ao funcionário usando template (agendado via scheduler)
|
||||
try {
|
||||
await ctx.runAction(api.email.enviarEmailComTemplate, {
|
||||
await ctx.scheduler.runAfter(0, api.email.enviarEmailComTemplate, {
|
||||
destinatario: funcionarioUsuario.email,
|
||||
destinatarioId: funcionarioUsuario._id,
|
||||
templateCodigo: "ausencia_reprovada",
|
||||
@@ -667,8 +673,11 @@ export const reprovar = mutation({
|
||||
enviadoPor: args.gestorId,
|
||||
});
|
||||
} catch (error) {
|
||||
// Fallback para envio direto se template não existir
|
||||
console.warn("Template ausencia_reprovada não encontrado, usando envio direto:", error);
|
||||
// Fallback para envio direto se houver erro ao agendar ou processar o template
|
||||
console.warn(
|
||||
"Erro ao agendar envio de email com template ausencia_reprovada, usando envio direto:",
|
||||
error,
|
||||
);
|
||||
await ctx.runMutation(api.email.enfileirarEmail, {
|
||||
destinatario: funcionarioUsuario.email,
|
||||
destinatarioId: funcionarioUsuario._id,
|
||||
|
||||
@@ -131,7 +131,7 @@ async function registrarNotificacoes(
|
||||
if (ticket.solicitanteEmail) {
|
||||
// Tentar usar template, senão usar envio direto
|
||||
try {
|
||||
await ctx.runAction(api.email.enviarEmailComTemplate, {
|
||||
await ctx.scheduler.runAfter(0, api.email.enviarEmailComTemplate, {
|
||||
destinatario: ticket.solicitanteEmail,
|
||||
destinatarioId: ticket.solicitanteId,
|
||||
templateCodigo: "chamado_atualizado",
|
||||
@@ -145,6 +145,10 @@ async function registrarNotificacoes(
|
||||
});
|
||||
} catch (error) {
|
||||
// Fallback para envio direto
|
||||
console.warn(
|
||||
"Erro ao agendar envio de email com template chamado_atualizado para solicitante, usando envio direto:",
|
||||
error,
|
||||
);
|
||||
await ctx.runMutation(api.email.enfileirarEmail, {
|
||||
destinatario: ticket.solicitanteEmail,
|
||||
destinatarioId: ticket.solicitanteId,
|
||||
@@ -172,7 +176,7 @@ async function registrarNotificacoes(
|
||||
if (responsavel?.email) {
|
||||
// Tentar usar template, senão usar envio direto
|
||||
try {
|
||||
await ctx.runAction(api.email.enviarEmailComTemplate, {
|
||||
await ctx.scheduler.runAfter(0, api.email.enviarEmailComTemplate, {
|
||||
destinatario: responsavel.email,
|
||||
destinatarioId: ticket.responsavelId,
|
||||
templateCodigo: "chamado_atualizado",
|
||||
@@ -186,6 +190,10 @@ async function registrarNotificacoes(
|
||||
});
|
||||
} catch (error) {
|
||||
// Fallback para envio direto
|
||||
console.warn(
|
||||
"Erro ao agendar envio de email com template chamado_atualizado para responsável, usando envio direto:",
|
||||
error,
|
||||
);
|
||||
await ctx.runMutation(api.email.enfileirarEmail, {
|
||||
destinatario: responsavel.email,
|
||||
destinatarioId: ticket.responsavelId,
|
||||
|
||||
Reference in New Issue
Block a user