Skip to content

Commit db10f81

Browse files
Merge pull request #507 from Azzybot/patch-7
Reconhecer tipos de mensagens
2 parents 717aac4 + 677e196 commit db10f81

1 file changed

Lines changed: 118 additions & 11 deletions

File tree

src/whatsapp/services/typebot.service.ts

Lines changed: 118 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)