From e8b74e71de04027314f6b045a4a4a003cf2d04b0 Mon Sep 17 00:00:00 2001 From: josedario87 Date: Wed, 3 Dec 2025 10:56:10 -0600 Subject: [PATCH] =?UTF-8?q?Fix:=20Agregar=20soporte=20para=20mensajes=20de?= =?UTF-8?q?=20respuesta=20(reply)=20en=20env=C3=ADo=20de=20texto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit El endpoint send.post.ts ignoraba el campo quotedMessageId que el frontend enviaba, causando que los mensajes de respuesta llegaran como mensajes normales. --- .../[instanceId]/[chatId]/send.post.ts | 31 +++++++++++++++---- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/server/api/messages/[instanceId]/[chatId]/send.post.ts b/server/api/messages/[instanceId]/[chatId]/send.post.ts index 224ffb9..da0fa17 100644 --- a/server/api/messages/[instanceId]/[chatId]/send.post.ts +++ b/server/api/messages/[instanceId]/[chatId]/send.post.ts @@ -8,6 +8,7 @@ import { baileysManager } from '../../../../services/baileys/manager' interface SendMessageBody { content?: string message?: string + quotedMessageId?: string } export default defineEventHandler(async (event) => { @@ -38,17 +39,33 @@ export default defineEventHandler(async (event) => { const jid = chatResult.rows[0].jid + // Get quoted message if provided + let quotedMessage = null + if (body.quotedMessageId) { + const quotedResult = await query( + 'SELECT raw_message FROM messages WHERE message_id = $1 AND instance_id = $2', + [body.quotedMessageId, instanceId] + ) + if (quotedResult.rows.length > 0) { + quotedMessage = quotedResult.rows[0].raw_message + } + } + try { - const result = await baileysManager.sendMessage(instanceId!, jid, { - text: messageText - }) + // Build message content + const content: any = { text: messageText } + if (quotedMessage) { + content.quoted = quotedMessage + } + + const result = await baileysManager.sendMessage(instanceId!, jid, content) // Save sent message to database await query( `INSERT INTO messages ( instance_id, chat_id, message_id, from_jid, from_me, - message_type, content, timestamp, status - ) VALUES ($1, $2, $3, $4, $5, $6, $7, NOW(), $8) + message_type, content, timestamp, status, raw_message, quoted_message_id + ) VALUES ($1, $2, $3, $4, $5, $6, $7, NOW(), $8, $9, $10) ON CONFLICT (instance_id, message_id) DO NOTHING`, [ instanceId, @@ -58,7 +75,9 @@ export default defineEventHandler(async (event) => { true, 'text', messageText, - 'sent' + 'sent', + JSON.stringify(result), + body.quotedMessageId || null ] )