Skip to content

Commit 98b8419

Browse files
Merge pull request #1237 from GrimBit1/main
Refactor Editing Message events and update message handler
2 parents a49c979 + 33f7f29 commit 98b8419

File tree

1 file changed

+38
-5
lines changed

1 file changed

+38
-5
lines changed

src/api/integrations/channel/whatsapp/whatsapp.baileys.service.ts

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1145,6 +1145,27 @@ export class BaileysStartupService extends ChannelStartupService {
11451145
);
11461146

11471147
await this.sendDataWebhook(Events.MESSAGES_EDITED, editedMessage);
1148+
const oldMessage = await this.getMessage(editedMessage.key, true);
1149+
if ((oldMessage as any)?.id) {
1150+
await this.prismaRepository.message.update({
1151+
where: { id: (oldMessage as any).id },
1152+
data: {
1153+
message: editedMessage.editedMessage as any,
1154+
messageTimestamp: (editedMessage.timestampMs as Long.Long).toNumber(),
1155+
status: 'EDITED',
1156+
},
1157+
});
1158+
await this.prismaRepository.messageUpdate.create({
1159+
data: {
1160+
fromMe: editedMessage.key.fromMe,
1161+
keyId: editedMessage.key.id,
1162+
remoteJid: editedMessage.key.remoteJid,
1163+
status: 'EDITED',
1164+
instanceId: this.instanceId,
1165+
messageId: (oldMessage as any).id,
1166+
},
1167+
});
1168+
}
11481169
}
11491170
}
11501171

@@ -3940,6 +3961,16 @@ export class BaileysStartupService extends ChannelStartupService {
39403961
}
39413962

39423963
try {
3964+
const oldMessage: any = await this.getMessage(data.key, true);
3965+
if (!oldMessage) throw new NotFoundException('Message not found');
3966+
if (oldMessage?.key?.remoteJid !== jid) {
3967+
throw new BadRequestException('RemoteJid does not match');
3968+
}
3969+
if (oldMessage?.messageTimestamp > Date.now() + 900000) {
3970+
// 15 minutes in milliseconds
3971+
throw new BadRequestException('Message is older than 15 minutes');
3972+
}
3973+
39433974
const response = await this.client.sendMessage(jid, {
39443975
...(options as any),
39453976
edit: data.key,
@@ -3963,15 +3994,17 @@ export class BaileysStartupService extends ChannelStartupService {
39633994
if ((message.key.valueOf() as any)?.deleted) {
39643995
new BadRequestException('You cannot edit deleted messages');
39653996
}
3966-
3967-
const updateMessage = this.prepareMessage({ ...response });
3997+
if (oldMessage.messageType === 'conversation' || oldMessage.messageType === 'extendedTextMessage') {
3998+
oldMessage.message.conversation = data.text;
3999+
} else {
4000+
oldMessage.message[oldMessage.messageType].caption = data.text;
4001+
}
39684002
message = await this.prismaRepository.message.update({
39694003
where: { id: message.id },
39704004
data: {
3971-
message: {
3972-
...updateMessage?.message?.[updateMessage.messageType]?.editedMessage,
3973-
},
4005+
message: oldMessage.message,
39744006
status: 'EDITED',
4007+
messageTimestamp: Math.floor(Date.now() / 1000), // Convert to int32 by dividing by 1000 to get seconds
39754008
},
39764009
});
39774010
const messageUpdate: any = {

0 commit comments

Comments
 (0)