From 4a7a7c3c50302002e6cb2e5291f699d7d4a5c51d Mon Sep 17 00:00:00 2001 From: Francis Breit Date: Sun, 1 Oct 2023 20:53:08 -0300 Subject: [PATCH] =?UTF-8?q?Start=20Typebot=20com=20opcao=20de=20ativar=20c?= =?UTF-8?q?hatbot=20ou=20n=C3=A3o.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Criada variável enabled_typebot . Se setada como true, o flow disparado é ativado como chatbot (original do Typebot), porém se false, dispara apenas como se fosse uma notificação e nao ativa o bot. --- src/whatsapp/services/typebot.service.ts | 57 ++++++++++++++++++++++-- 1 file changed, 53 insertions(+), 4 deletions(-) diff --git a/src/whatsapp/services/typebot.service.ts b/src/whatsapp/services/typebot.service.ts index 88dde9c3..599546da 100644 --- a/src/whatsapp/services/typebot.service.ts +++ b/src/whatsapp/services/typebot.service.ts @@ -99,6 +99,8 @@ export class TypebotService { const remoteJid = data.remoteJid; const url = data.url; const typebot = data.typebot; + // linha incluida por Francis: + const enabled_typebot = data.enabled_typebot; const variables = data.variables; const findTypebot = await this.find(instance); const sessions = (findTypebot.sessions as Session[]) ?? []; @@ -115,9 +117,16 @@ export class TypebotService { variables.forEach((variable) => { prefilledVariables[variable.name] = variable.value; }); + // linha incluida por Francis: + if (enabled_typebot !== false ) { + + let enabled_typebot = true; + - const response = await this.createNewSession(instance, { +const response = await this.createNewSession(instance, { url: url, + // linha incluida por Francis: + enabled_typebot: enabled_typebot, typebot: typebot, remoteJid: remoteJid, expire: expire, @@ -141,6 +150,8 @@ export class TypebotService { this.waMonitor.waInstances[instance.instanceName].sendDataWebhook(Events.TYPEBOT_START, { remoteJid: remoteJid, url: url, + // linha incluida por Francis: + enabled_typebot: enabled_typebot, typebot: typebot, prefilledVariables: prefilledVariables, sessionId: `${response.sessionId}`, @@ -148,11 +159,50 @@ export class TypebotService { } else { throw new Error("Session ID not found in response"); } + +} else { + +const id = Math.floor(Math.random() * 10000000000).toString(); + + const reqData = { + sessionId: id, + startParams: { + typebot: data.typebot, + prefilledVariables: prefilledVariables, + }, + }; + + const request = await axios.post(data.url + '/api/v1/sendMessage', reqData); + + await this.sendWAMessage( + instance, + remoteJid, + request.data.messages, + request.data.input, + request.data.clientSideActions, + ); + + this.waMonitor.waInstances[instance.instanceName].sendDataWebhook(Events.TYPEBOT_START, { + remoteJid: remoteJid, + url: url, + typebot: typebot, + variables: variables, + sessionId: id, + }); + + +} + + + + // ate aqui return { typebot: { ...instance, typebot: { + // linha incluida por Francis: + enabled_typebot: enabled_typebot, url: url, remoteJid: remoteJid, typebot: typebot, @@ -231,7 +281,8 @@ export class TypebotService { }); const typebotData = { - enabled: true, + // linha incluida por Francis: + enabled: data.enabled_typebot, url: data.url, typebot: data.typebot, expire: data.expire, @@ -469,7 +520,6 @@ export class TypebotService { }); const typebotData = { - enabled: true, url: url, typebot: typebot, expire: expire, @@ -504,7 +554,6 @@ export class TypebotService { sessions.splice(sessions.indexOf(session), 1); const typebotData = { - enabled: true, url: url, typebot: typebot, expire: expire,