@@ -133,6 +133,9 @@ import { waMonitor } from '../whatsapp.module';
133133import { ChamaaiService } from './chamaai.service' ;
134134import { ChatwootService } from './chatwoot.service' ;
135135import { TypebotService } from './typebot.service' ;
136+
137+ const retryCache = { } ;
138+
136139export 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