From 6518c9ca12e50dd56072e3055f590ec65e039e15 Mon Sep 17 00:00:00 2001 From: Rodrigo Rodriguez Date: Fri, 3 May 2024 14:23:48 -0300 Subject: [PATCH] new(whatsapp.gblib): New WhatsApp provider: Meta. --- .../services/GBConversationalService.ts | 43 ++++++++++--------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/packages/core.gbapp/services/GBConversationalService.ts b/packages/core.gbapp/services/GBConversationalService.ts index 4e143883..d3f99b77 100644 --- a/packages/core.gbapp/services/GBConversationalService.ts +++ b/packages/core.gbapp/services/GBConversationalService.ts @@ -649,28 +649,28 @@ export class GBConversationalService { } public async fillAndBroadcastTemplate(min: GBMinInstance, mobile: string, text) { - - let isMedia = text.toLowerCase().endsWith('.jpg') || text.toLowerCase().endsWith('.jpeg') + + let isMedia = text.toLowerCase().endsWith('.jpg') || text.toLowerCase().endsWith('.jpeg') || text.toLowerCase().endsWith('.png'); - - let image = isMedia ? - /(.*)\n/gmi.exec(text)[0].trim(): + + let image = isMedia ? + /(.*)\n/gmi.exec(text)[0].trim() : text; const gbaiName = DialogKeywords.getGBAIPath(min.botId); - const fileUrl = urlJoin(process.env.BOT_URL,'kb', gbaiName, `${min.botId}.gbkb`, 'images', image); - + const fileUrl = urlJoin(process.env.BOT_URL, 'kb', gbaiName, `${min.botId}.gbkb`, 'images', image); + let urlImage = image.startsWith('http') ? image : fileUrl; - if (!isMedia){ + if (!isMedia) { text = text.substring(image.length).trim(); text = text.replace(/\n/g, "\\n"); } - let data = { - name: isMedia?'broadcast_notext':'broadcast', components: [ + let data:any = { + name: isMedia ? 'broadcast_notext' : 'broadcast', components: [ { type: "header", parameters: [ @@ -678,22 +678,25 @@ export class GBConversationalService { type: "image", image: { link: urlImage, - }, + } }, ], - }, - { - type: "body", - parameters: [ - { - type: "text", - text: text, - } - ] } ] }; + if (!isMedia) { + data.components.push({ + type: "body", + parameters: [ + { + type: "text", + text: text, + } + ] + }); + } + GBLogEx.info(min, `Sending answer file to mobile: ${mobile}. Header: ${urlImage}`); await this.sendToMobile(min, mobile, data, null); }