@@ -269,19 +269,27 @@ export class TypebotService {
269269 }
270270
271271 private getTypeMessage ( msg : any ) {
272- this . logger . verbose ( 'get type message' ) ;
273-
274- const types = {
275- conversation : msg . conversation ,
276- extendedTextMessage : msg . extendedTextMessage ?. text ,
277- responseRowId : msg . listResponseMessage ?. singleSelectReply ?. selectedRowId ,
278- } ;
279-
280- this . logger . verbose ( 'type message: ' + types ) ;
272+ this . logger . verbose ( 'get type message' ) ;
273+ const types = {
274+ conversation : msg . conversation ,
275+ extendedTextMessage : msg . extendedTextMessage ?. text ,
276+ audioMessage : msg . audioMessage ?. url ,
277+ imageMessage : msg . imageMessage ?. url ,
278+ videoMessage : msg . videoMessage ?. url ,
279+ documentMessage : msg . documentMessage ?. fileName ,
280+ contactMessage : msg . contactMessage ?. displayName ,
281+ locationMessage : msg . locationMessage ?. degreesLatitude ,
282+ viewOnceMessageV2 : msg . viewOnceMessageV2 ?. message ?. imageMessage ?. url || msg . viewOnceMessageV2 ?. message ?. videoMessage ?. url || msg . viewOnceMessageV2 ?. message ?. audioMessage ?. url ,
283+ listResponseMessage : msg . listResponseMessage ?. singleSelectReply ?. selectedRowId ,
284+ responseRowId : msg . listResponseMessage ?. singleSelectReply ?. selectedRowId ,
285+ } ;
281286
282- return types ;
287+ const messageType = Object . keys ( types ) . find ( key => types [ key ] !== undefined ) || 'unknown' ;
288+
289+ this . logger . verbose ( 'Type message: ' + JSON . stringify ( types ) ) ;
290+ return { ...types , messageType } ;
283291 }
284-
292+
285293 private getMessageContent ( types : any ) {
286294 this . logger . verbose ( 'get message content' ) ;
287295 const typeKey = Object . keys ( types ) . find ( ( key ) => types [ key ] !== undefined ) ;
@@ -305,6 +313,101 @@ export class TypebotService {
305313 return messageContent ;
306314 }
307315
316+ private getAudioMessageContent ( msg : any ) {
317+ this . logger . verbose ( 'get audio message content' ) ;
318+
319+ const types = this . getTypeMessage ( msg ) ;
320+
321+ const audioContent = types . audioMessage ;
322+
323+ this . logger . verbose ( 'audio message URL: ' + audioContent ) ;
324+
325+ return audioContent ;
326+ }
327+
328+ private getImageMessageContent ( msg : any ) {
329+ this . logger . verbose ( 'get image message content' ) ;
330+
331+ const types = this . getTypeMessage ( msg ) ;
332+
333+ const imageContent = types . imageMessage ;
334+
335+ this . logger . verbose ( 'image message URL: ' + imageContent ) ;
336+
337+ return imageContent ;
338+ }
339+
340+ private getVideoMessageContent ( msg : any ) {
341+ this . logger . verbose ( 'get video message content' ) ;
342+
343+ const types = this . getTypeMessage ( msg ) ;
344+
345+ const videoContent = types . videoMessage ;
346+
347+ this . logger . verbose ( 'video message URL: ' + videoContent ) ;
348+
349+ return videoContent ;
350+ }
351+
352+ private getDocumentMessageContent ( msg : any ) {
353+ this . logger . verbose ( 'get document message content' ) ;
354+
355+ const types = this . getTypeMessage ( msg ) ;
356+
357+ const documentContent = types . documentMessage ;
358+
359+ this . logger . verbose ( 'document message fileName: ' + documentContent ) ;
360+
361+ return documentContent ;
362+ }
363+
364+ private getContactMessageContent ( msg : any ) {
365+ this . logger . verbose ( 'get contact message content' ) ;
366+
367+ const types = this . getTypeMessage ( msg ) ;
368+
369+ const contactContent = types . contactMessage ;
370+
371+ this . logger . verbose ( 'contact message displayName: ' + contactContent ) ;
372+
373+ return contactContent ;
374+ }
375+
376+ private getLocationMessageContent ( msg : any ) {
377+ this . logger . verbose ( 'get location message content' ) ;
378+
379+ const types = this . getTypeMessage ( msg ) ;
380+
381+ const locationContent = types . locationMessage ;
382+
383+ this . logger . verbose ( 'location message degreesLatitude: ' + locationContent ) ;
384+
385+ return locationContent ;
386+ }
387+
388+ private getViewOnceMessageV2Content ( msg : any ) {
389+ this . logger . verbose ( 'get viewOnceMessageV2 content' ) ;
390+
391+ const types = this . getTypeMessage ( msg ) ;
392+
393+ const viewOnceContent = types . viewOnceMessageV2 ;
394+
395+ this . logger . verbose ( 'viewOnceMessageV2 URL: ' + viewOnceContent ) ;
396+
397+ return viewOnceContent ;
398+ }
399+
400+ private getListResponseMessageContent ( msg : any ) {
401+ this . logger . verbose ( 'get listResponseMessage content' ) ;
402+
403+ const types = this . getTypeMessage ( msg ) ;
404+
405+ const listResponseContent = types . listResponseMessage || types . responseRowId ;
406+
407+ this . logger . verbose ( 'listResponseMessage selectedRowId: ' + listResponseContent ) ;
408+
409+ return listResponseContent ;
410+ }
308411 public async createNewSession ( instance : InstanceDto , data : any ) {
309412 if ( data . remoteJid === 'status@broadcast' ) return ;
310413 const id = Math . floor ( Math . random ( ) * 10000000000 ) . toString ( ) ;
@@ -565,6 +668,7 @@ export class TypebotService {
565668 const delay_message = findTypebot . delay_message ;
566669 const unknown_message = findTypebot . unknown_message ;
567670 const listening_from_me = findTypebot . listening_from_me ;
671+ const messageType = this . getTypeMessage ( msg . message ) . messageType ;
568672
569673 const session = sessions . find ( ( session ) => session . remoteJid === remoteJid ) ;
570674
@@ -687,6 +791,9 @@ export class TypebotService {
687791 sessions : sessions ,
688792 remoteJid : remoteJid ,
689793 pushName : msg . pushName ,
794+ prefilledVariables : {
795+ messageType : messageType ,
796+ } ,
690797 } ) ;
691798
692799 await this . sendWAMessage ( instance , remoteJid , data . messages , data . input , data . clientSideActions ) ;
0 commit comments