|
|
|
|
@ -6,7 +6,7 @@ import { Metrics } from './metrics';
|
|
|
|
|
import { toIsoSqlUTC } from '../utils/datetime';
|
|
|
|
|
import * as EvolutionClient from '../clients/evolution';
|
|
|
|
|
import { runCleanupOnce as cleanupRunOnce } from './queue/cleanup';
|
|
|
|
|
import { parseQueueMetadata } from './queue/metadata';
|
|
|
|
|
import { parseQueueMetadata, isReactionMeta } from './queue/metadata';
|
|
|
|
|
|
|
|
|
|
const MAX_FALLBACK_DIGITS = (() => {
|
|
|
|
|
const raw = (process.env.ONBOARDING_FALLBACK_MAX_DIGITS || '').trim();
|
|
|
|
|
@ -264,7 +264,7 @@ export const ResponseQueue = {
|
|
|
|
|
|
|
|
|
|
// Detectar jobs de reacción
|
|
|
|
|
const meta = parseQueueMetadata(item.metadata);
|
|
|
|
|
if (meta && meta.kind === 'reaction') {
|
|
|
|
|
if (isReactionMeta(meta)) {
|
|
|
|
|
const chatId = String(meta.chatId || '');
|
|
|
|
|
const messageId = String(meta.messageId || '');
|
|
|
|
|
const emoji = String(meta.emoji || '');
|
|
|
|
|
@ -283,11 +283,15 @@ export const ResponseQueue = {
|
|
|
|
|
const errTxt = result.error || (typeof result.status === 'number' ? `HTTP ${result.status}` : 'unknown_error');
|
|
|
|
|
console.warn('Send reaction failed:', { status: result.status, body: errTxt });
|
|
|
|
|
try { Metrics.inc('reactions_failed_total', 1, { emoji: emojiLabel }); } catch {}
|
|
|
|
|
return { ok: false, status: result.status, error: errTxt };
|
|
|
|
|
const out: { ok: false; error: string } & { status?: number } = { ok: false, error: errTxt };
|
|
|
|
|
if (typeof result.status === 'number') out.status = result.status;
|
|
|
|
|
return out;
|
|
|
|
|
}
|
|
|
|
|
console.log(`✅ Sent reaction with payload: ${JSON.stringify(payload)}`);
|
|
|
|
|
try { Metrics.inc('reactions_sent_total', 1, { emoji: emojiLabel }); } catch {}
|
|
|
|
|
return { ok: true, status: result.status };
|
|
|
|
|
const okOut: { ok: true } & { status?: number } = { ok: true };
|
|
|
|
|
if (typeof result.status === 'number') okOut.status = result.status;
|
|
|
|
|
return okOut;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Endpoint típico de Evolution API para texto simple
|
|
|
|
|
@ -363,10 +367,14 @@ export const ResponseQueue = {
|
|
|
|
|
if (!result.ok) {
|
|
|
|
|
const errTxt = result.error || (typeof result.status === 'number' ? `HTTP ${result.status}` : 'unknown_error');
|
|
|
|
|
console.warn('Send failed:', { status: result.status, body: errTxt });
|
|
|
|
|
return { ok: false, status: result.status, error: errTxt };
|
|
|
|
|
const out: { ok: false; error: string } & { status?: number } = { ok: false, error: errTxt };
|
|
|
|
|
if (typeof result.status === 'number') out.status = result.status;
|
|
|
|
|
return out;
|
|
|
|
|
}
|
|
|
|
|
console.log(`✅ Sent message with payload: ${JSON.stringify(payload)}`);
|
|
|
|
|
return { ok: true, status: result.status };
|
|
|
|
|
const okOut: { ok: true } & { status?: number } = { ok: true };
|
|
|
|
|
if (typeof result.status === 'number') okOut.status = result.status;
|
|
|
|
|
return okOut;
|
|
|
|
|
}
|
|
|
|
|
} catch (err) {
|
|
|
|
|
const errMsg = (err instanceof Error ? err.message : String(err));
|
|
|
|
|
|