1+ import { delay } from '@whiskeysockets/baileys' ;
12import axios from 'axios' ;
23
34import { Logger } from '../../config/logger.config' ;
@@ -162,13 +163,34 @@ export class TypebotService {
162163 return request . data ;
163164 }
164165
165- public async sendWAMessage ( instance : InstanceDto , remoteJid : string , messages : any [ ] , input : any [ ] ) {
166- processMessages ( this . waMonitor . waInstances [ instance . instanceName ] , messages , input ) . catch ( ( err ) => {
167- console . error ( 'Erro ao processar mensagens:' , err ) ;
168- } ) ;
166+ public async sendWAMessage (
167+ instance : InstanceDto ,
168+ remoteJid : string ,
169+ messages : any [ ] ,
170+ input : any [ ] ,
171+ clientSideActions : any [ ] ,
172+ ) {
173+ processMessages ( this . waMonitor . waInstances [ instance . instanceName ] , messages , input , clientSideActions ) . catch (
174+ ( err ) => {
175+ console . error ( 'Erro ao processar mensagens:' , err ) ;
176+ } ,
177+ ) ;
178+
179+ function findItemAndGetSecondsToWait ( array , targetId ) {
180+ if ( ! array ) return null ;
181+
182+ for ( const item of array ) {
183+ if ( item . lastBubbleBlockId === targetId ) {
184+ return item . wait ?. secondsToWaitFor ;
185+ }
186+ }
187+ return null ;
188+ }
169189
170- async function processMessages ( instance , messages , input ) {
190+ async function processMessages ( instance , messages , input , clientSideActions ) {
171191 for ( const message of messages ) {
192+ const wait = findItemAndGetSecondsToWait ( clientSideActions , message . id ) ;
193+
172194 if ( message . type === 'text' ) {
173195 let formattedText = '' ;
174196
@@ -260,6 +282,10 @@ export class TypebotService {
260282 } ,
261283 } ) ;
262284 }
285+
286+ if ( wait ) {
287+ await delay ( wait * 1000 ) ;
288+ }
263289 }
264290
265291 if ( input ) {
@@ -323,7 +349,7 @@ export class TypebotService {
323349 pushName : msg . pushName ,
324350 } ) ;
325351
326- await this . sendWAMessage ( instance , remoteJid , data . messages , data . input ) ;
352+ await this . sendWAMessage ( instance , remoteJid , data . messages , data . input , data . clientSideActions ) ;
327353
328354 return ;
329355 }
@@ -346,7 +372,7 @@ export class TypebotService {
346372 pushName : msg . pushName ,
347373 } ) ;
348374
349- await this . sendWAMessage ( instance , remoteJid , data . messages , data . input ) ;
375+ await this . sendWAMessage ( instance , remoteJid , data . messages , data . input , data . clientSideActions ) ;
350376
351377 return ;
352378 }
@@ -414,7 +440,13 @@ export class TypebotService {
414440
415441 const request = await axios . post ( url + '/api/v1/sendMessage' , reqData ) ;
416442
417- await this . sendWAMessage ( instance , remoteJid , request . data . messages , request . data . input ) ;
443+ await this . sendWAMessage (
444+ instance ,
445+ remoteJid ,
446+ request . data . messages ,
447+ request . data . input ,
448+ request . data . clientSideActions ,
449+ ) ;
418450
419451 return ;
420452 }
0 commit comments