Skip to content

Commit ee1e462

Browse files
Merge pull request #474 from jaison-x/edit-message
feat(chatwoot): show edited messages from WhatsApp in Chatwoot
2 parents 5982212 + 3b77455 commit ee1e462

4 files changed

Lines changed: 43 additions & 2 deletions

File tree

src/utils/translations/en.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,6 @@
2121
"cw.locationMessage.locationUrl": "URL",
2222
"cw.contactMessage.contact": "Contact",
2323
"cw.contactMessage.name": "Name",
24-
"cw.contactMessage.number": "Number"
24+
"cw.contactMessage.number": "Number",
25+
"cw.message.edited": "Edited Message"
2526
}

src/utils/translations/pt-BR.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,6 @@
2121
"cw.locationMessage.locationUrl": "URL",
2222
"cw.contactMessage.contact": "Contato",
2323
"cw.contactMessage.name": "Nome",
24-
"cw.contactMessage.number": "Número"
24+
"cw.contactMessage.number": "Número",
25+
"cw.message.edited": "Mensagem editada"
2526
}

src/whatsapp/services/chatwoot.service.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2078,6 +2078,34 @@ export class ChatwootService {
20782078
}
20792079
}
20802080

2081+
if (event === 'messages.edit') {
2082+
const editedText = `${
2083+
body?.editedMessage?.conversation || body?.editedMessage?.extendedTextMessage?.text
2084+
}\n\n_\`${i18next.t('cw.message.edited')}.\`_`;
2085+
const message = await this.getMessageByKeyId(instance, body?.key?.id);
2086+
const messageType = message.key?.fromMe ? 'outgoing' : 'incoming';
2087+
2088+
if (message && message.chatwoot?.conversationId) {
2089+
const send = await this.createMessage(
2090+
instance,
2091+
message.chatwoot.conversationId,
2092+
editedText,
2093+
messageType,
2094+
false,
2095+
[],
2096+
{
2097+
message: { extendedTextMessage: { contextInfo: { stanzaId: message.key.id } } },
2098+
},
2099+
'WAID:' + body.key.id,
2100+
);
2101+
if (!send) {
2102+
this.logger.warn('edited message not sent');
2103+
return;
2104+
}
2105+
}
2106+
return;
2107+
}
2108+
20812109
if (event === 'messages.read') {
20822110
this.logger.verbose('read message from instance: ' + instance.instanceName);
20832111

src/whatsapp/services/whatsapp.baileys.service.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -937,6 +937,17 @@ export class BaileysStartupService extends WAStartupService {
937937
try {
938938
this.logger.verbose('Event received: messages.upsert');
939939
for (const received of messages) {
940+
if (
941+
this.localChatwoot.enabled &&
942+
(received.message?.protocolMessage?.editedMessage || received.message?.editedMessage?.message)
943+
) {
944+
const editedMessage =
945+
received.message?.protocolMessage || received.message?.editedMessage?.message?.protocolMessage;
946+
if (editedMessage) {
947+
this.chatwootService.eventWhatsapp('messages.edit', { instanceName: this.instance.name }, editedMessage);
948+
}
949+
}
950+
940951
if (
941952
(type !== 'notify' && type !== 'append') ||
942953
received.message?.protocolMessage ||

0 commit comments

Comments
 (0)