fix: message retry

This commit is contained in:
Rajeh Taher 2023-12-19 22:28:50 +02:00 committed by GitHub
parent 53ee270096
commit 4e27c22292
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 1 deletions

View File

@ -46,7 +46,7 @@
"@figuro/chatwoot-sdk": "^1.1.16",
"@hapi/boom": "^10.0.1",
"@sentry/node": "^7.59.2",
"@whiskeysockets/baileys": "github:PurpShell/Baileys",
"@whiskeysockets/baileys": "github:PurpShell/Baileys#combined",
"amqplib": "^0.10.3",
"aws-sdk": "^2.1499.0",
"axios": "^1.3.5",

View File

@ -133,6 +133,9 @@ import { waMonitor } from '../whatsapp.module';
import { ChamaaiService } from './chamaai.service';
import { ChatwootService } from './chatwoot.service';
import { TypebotService } from './typebot.service';
const retryCache = {};
export class WAStartupService {
constructor(
private readonly configService: ConfigService,
@ -2038,12 +2041,27 @@ export class WAStartupService {
if (events['messages.upsert']) {
this.logger.verbose('Listening event: messages.upsert');
const payload = events['messages.upsert'];
if (payload.messages.find(a => a?.messageStubType === 2)) {
const msg = payload.messages[0];
retryCache[msg.key.id] = msg;
return;
}
this.messageHandle['messages.upsert'](payload, database, settings);
}
if (events['messages.update']) {
this.logger.verbose('Listening event: messages.update');
const payload = events['messages.update'];
payload.forEach(message => {
if (retryCache[message.key.id]) {
this.client.ev.emit("messages.upsert", {
messages: [message],
type: "notify"
});
delete retryCache[message.key.id];
return;
}
})
this.messageHandle['messages.update'](payload, database, settings);
}