Skip to content

Commit 5f1a5d6

Browse files
Merge pull request #308 from PurpShell/fix/message-retry
Fix: message retry mechanism
2 parents 53ee270 + 4e27c22 commit 5f1a5d6

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
"@figuro/chatwoot-sdk": "^1.1.16",
4747
"@hapi/boom": "^10.0.1",
4848
"@sentry/node": "^7.59.2",
49-
"@whiskeysockets/baileys": "github:PurpShell/Baileys",
49+
"@whiskeysockets/baileys": "github:PurpShell/Baileys#combined",
5050
"amqplib": "^0.10.3",
5151
"aws-sdk": "^2.1499.0",
5252
"axios": "^1.3.5",

src/whatsapp/services/whatsapp.service.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,9 @@ import { waMonitor } from '../whatsapp.module';
133133
import { ChamaaiService } from './chamaai.service';
134134
import { ChatwootService } from './chatwoot.service';
135135
import { TypebotService } from './typebot.service';
136+
137+
const retryCache = {};
138+
136139
export class WAStartupService {
137140
constructor(
138141
private readonly configService: ConfigService,
@@ -2038,12 +2041,27 @@ export class WAStartupService {
20382041
if (events['messages.upsert']) {
20392042
this.logger.verbose('Listening event: messages.upsert');
20402043
const payload = events['messages.upsert'];
2044+
if (payload.messages.find(a => a?.messageStubType === 2)) {
2045+
const msg = payload.messages[0];
2046+
retryCache[msg.key.id] = msg;
2047+
return;
2048+
}
20412049
this.messageHandle['messages.upsert'](payload, database, settings);
20422050
}
20432051

20442052
if (events['messages.update']) {
20452053
this.logger.verbose('Listening event: messages.update');
20462054
const payload = events['messages.update'];
2055+
payload.forEach(message => {
2056+
if (retryCache[message.key.id]) {
2057+
this.client.ev.emit("messages.upsert", {
2058+
messages: [message],
2059+
type: "notify"
2060+
});
2061+
delete retryCache[message.key.id];
2062+
return;
2063+
}
2064+
})
20472065
this.messageHandle['messages.update'](payload, database, settings);
20482066
}
20492067

0 commit comments

Comments
 (0)