diff --git a/src/whatsapp/services/typebot.service.ts b/src/whatsapp/services/typebot.service.ts index b4da8369..3487046b 100644 --- a/src/whatsapp/services/typebot.service.ts +++ b/src/whatsapp/services/typebot.service.ts @@ -171,6 +171,7 @@ export class TypebotService { const prefilledVariables = { remoteJid: remoteJid, instanceName: instance.instanceName, + messageType: messageType, }; if (variables?.length) { @@ -280,16 +281,48 @@ export class TypebotService { documentMessage: msg.documentMessage?.fileName, contactMessage: msg.contactMessage?.displayName, locationMessage: msg.locationMessage?.degreesLatitude, - viewOnceMessageV2: msg.viewOnceMessageV2?.message?.imageMessage?.url, + viewOnceMessageV2: msg.viewOnceMessageV2?.message?.videoMessage?.url, listResponseMessage: msg.listResponseMessage?.singleSelectReply?.selectedRowId, responseRowId: msg.listResponseMessage?.singleSelectReply?.selectedRowId, + // Adiciona uma nova propriedade messageType para identificar o tipo da mensagem + messageType: Object.keys(types).find(key => types[key] !== undefined) || 'unknown' }; this.logger.verbose('type message: ' + JSON.stringify(types)); return types; } - + + // Obtém os tipos de mensagem e o tipo identificado + const messageType = this.getTypeMessage(msg.message); + + // Condiciona a lógica com switch-case + switch (messageType) { + case 'audioMessage': + return 'audio'; + case 'imageMessage': + return 'image'; + case 'videoMessage': + return 'video'; + case 'documentMessage': + return 'document'; + case 'contactMessage': + return 'contact'; + case 'locationMessage': + return 'location'; + case 'viewOnceMessageV2': + return 'oneView'; + case 'listResponseMessage': + case 'responseRowId': + return 'option'; + case 'conversation': + return 'text'; + case 'extendedTextMessage': + return 'textWeb'; + default: + return 'unknown'; + } + private getMessageContent(types: any) { this.logger.verbose('get message content'); const typeKey = Object.keys(types).find((key) => types[key] !== undefined);