import { sessionManager } from "../whatsapp/session-manager.js"; import { sendTextToGroup } from "../whatsapp/sender.js"; import { writeAuditLog } from "../audit.js"; import { db } from "../db.js"; import { logger } from "../logger.js"; import { pgNotifyWeb } from "./notify.js"; export async function handleSendTest(groupId: string, text: string): Promise { const group = await db.query.whatsappGroups.findFirst({ where: (g, { eq }) => eq(g.id, groupId), }); if (!group) { logger.warn({ groupId }, "send-test: group missing"); await pgNotifyWeb({ type: "send_test.done", groupId, ok: false, error: "Group not found", }); return; } const session = sessionManager.getSession(group.accountId); if (!session) { logger.warn({ groupId, accountId: group.accountId }, "send-test: account not connected"); await pgNotifyWeb({ type: "send_test.done", groupId, ok: false, error: "Account not connected — re-pair before sending", }); return; } try { const result = await sendTextToGroup(session.socket, group.waGroupJid, text); await writeAuditLog(db, { operatorId: null, source: "web", action: "group.send_test", targetType: "whatsapp_group", targetId: groupId, payload: { groupName: group.name, length: text.length, waMessageId: result.messageId ?? null }, }); await pgNotifyWeb({ type: "send_test.done", groupId, ok: true, error: null }); } catch (err) { logger.error({ err, groupId }, "send-test: failed"); await pgNotifyWeb({ type: "send_test.done", groupId, ok: false, error: err instanceof Error ? err.message : "Send failed", }); } }