@@ -113,10 +113,10 @@ export class TypebotService {
113
113
return request . data ;
114
114
}
115
115
116
- public async sendWAMessage ( instance : InstanceDto , remoteJid : string , messages : any [ ] , closeSession ?: boolean ) {
117
- processMessages ( this . waMonitor . waInstances [ instance . instanceName ] , messages )
116
+ public async sendWAMessage ( instance : InstanceDto , remoteJid : string , messages : any [ ] , input : any [ ] ) {
117
+ processMessages ( this . waMonitor . waInstances [ instance . instanceName ] , messages , input )
118
118
. then ( async ( ) => {
119
- if ( closeSession ) {
119
+ if ( ! input ) {
120
120
const typebotData = await this . find ( instance ) ;
121
121
122
122
const session = typebotData . sessions . find ( ( session ) => session . remoteJid === remoteJid ) ;
@@ -132,11 +132,13 @@ export class TypebotService {
132
132
console . error ( 'Erro ao processar mensagens:' , err ) ;
133
133
} ) ;
134
134
135
- async function processMessages ( instance , messages ) {
135
+ async function processMessages ( instance , messages , input ) {
136
136
for ( const message of messages ) {
137
137
if ( message . type === 'text' ) {
138
138
let formattedText = '' ;
139
139
140
+ let linkPreview = false ;
141
+
140
142
for ( const richText of message . content . richText ) {
141
143
for ( const element of richText . children ) {
142
144
let text = '' ;
@@ -159,6 +161,7 @@ export class TypebotService {
159
161
if ( element . url ) {
160
162
const linkText = element . children [ 0 ] . text ;
161
163
text = `[${ linkText } ](${ element . url } )` ;
164
+ linkPreview = true ;
162
165
}
163
166
164
167
formattedText += text ;
@@ -173,7 +176,7 @@ export class TypebotService {
173
176
options : {
174
177
delay : 1200 ,
175
178
presence : 'composing' ,
176
- linkPreview : false ,
179
+ linkPreview : linkPreview ,
177
180
} ,
178
181
textMessage : {
179
182
text : formattedText ,
@@ -223,6 +226,32 @@ export class TypebotService {
223
226
} ) ;
224
227
}
225
228
}
229
+
230
+ if ( input ) {
231
+ if ( input . type === 'choice input' ) {
232
+ let formattedText = '' ;
233
+
234
+ const items = input . items ;
235
+
236
+ for ( const item of items ) {
237
+ formattedText += `▶️ ${ item . content } \n` ;
238
+ }
239
+
240
+ formattedText = formattedText . replace ( / \n $ / , '' ) ;
241
+
242
+ await instance . textMessage ( {
243
+ number : remoteJid . split ( '@' ) [ 0 ] ,
244
+ options : {
245
+ delay : 1200 ,
246
+ presence : 'composing' ,
247
+ linkPreview : false ,
248
+ } ,
249
+ textMessage : {
250
+ text : formattedText ,
251
+ } ,
252
+ } ) ;
253
+ }
254
+ }
226
255
}
227
256
}
228
257
@@ -252,7 +281,7 @@ export class TypebotService {
252
281
remoteJid : remoteJid ,
253
282
} ) ;
254
283
255
- await this . sendWAMessage ( instance , remoteJid , data . messages ) ;
284
+ await this . sendWAMessage ( instance , remoteJid , data . messages , data . input ) ;
256
285
257
286
return ;
258
287
}
@@ -267,7 +296,7 @@ export class TypebotService {
267
296
remoteJid : remoteJid ,
268
297
} ) ;
269
298
270
- await this . sendWAMessage ( instance , remoteJid , data . messages ) ;
299
+ await this . sendWAMessage ( instance , remoteJid , data . messages , data . input ) ;
271
300
272
301
return ;
273
302
}
@@ -329,7 +358,7 @@ export class TypebotService {
329
358
} ) ;
330
359
}
331
360
332
- await this . sendWAMessage ( instance , remoteJid , request . data . messages , ! request . data . input ) ;
361
+ await this . sendWAMessage ( instance , remoteJid , request . data . messages , request . data . input ) ;
333
362
334
363
return ;
335
364
}
0 commit comments