diff --git a/src/api/integrations/chatbot/typebot/services/typebot.service.ts b/src/api/integrations/chatbot/typebot/services/typebot.service.ts index 01346fa6..b094ec40 100644 --- a/src/api/integrations/chatbot/typebot/services/typebot.service.ts +++ b/src/api/integrations/chatbot/typebot/services/typebot.service.ts @@ -2,7 +2,7 @@ import { PrismaRepository } from '@api/repository/repository.service'; import { WAMonitoringService } from '@api/services/monitor.service'; import { Auth, ConfigService, HttpServer, Typebot } from '@config/env.config'; import { Instance, IntegrationSession, Message, Typebot as TypebotModel } from '@prisma/client'; -import { getConversationMessage } from '@utils/getConversationMessage'; +import { getConversationMessage, getTypeMessage } from '@utils/getConversationMessage'; import { sendTelemetry } from '@utils/sendTelemetry'; import axios from 'axios'; @@ -97,6 +97,7 @@ export class TypebotService extends BaseChatbotService { ...data.prefilledVariables, remoteJid: data.remoteJid, pushName: data.pushName || data.prefilledVariables?.pushName || '', + messageType: data.prefilledVariables?.messageType, instanceName: instance.name, serverUrl: this.configService.get('SERVER').URL, apiKey: this.configService.get('AUTHENTICATION').API_KEY.KEY, @@ -113,6 +114,7 @@ export class TypebotService extends BaseChatbotService { ...data.prefilledVariables, remoteJid: data.remoteJid, pushName: data.pushName || data.prefilledVariables?.pushName || '', + messageType: data.prefilledVariables?.messageType, instanceName: instance.name, serverUrl: this.configService.get('SERVER').URL, apiKey: this.configService.get('AUTHENTICATION').API_KEY.KEY, @@ -135,6 +137,7 @@ export class TypebotService extends BaseChatbotService { ...data.prefilledVariables, remoteJid: data.remoteJid, pushName: data.pushName || '', + messageType: data.prefilledVariables?.messageType, instanceName: instance.name, serverUrl: this.configService.get('SERVER').URL, apiKey: this.configService.get('AUTHENTICATION').API_KEY.KEY, @@ -600,20 +603,23 @@ export class TypebotService extends BaseChatbotService { }); } - const data = await this.createNewSession(instance, { - enabled: findTypebot?.enabled, - url: url, - typebot: typebot, - expire: expire, - keywordFinish: keywordFinish, - delayMessage: delayMessage, - unknownMessage: unknownMessage, - listeningFromMe: listeningFromMe, - remoteJid: remoteJid, - pushName: msg.pushName, - botId: findTypebot.id, - prefilledVariables: prefilledVariables, - }); + const data = await this.createNewSession(instance, { + enabled: findTypebot?.enabled, + url: url, + typebot: typebot, + expire: expire, + keywordFinish: keywordFinish, + delayMessage: delayMessage, + unknownMessage: unknownMessage, + listeningFromMe: listeningFromMe, + remoteJid: remoteJid, + pushName: msg.pushName, + botId: findTypebot.id, + prefilledVariables: { + ...prefilledVariables, + messageType: getTypeMessage(msg).messageType, + }, + }); if (data?.session) { session = data.session; @@ -667,12 +673,20 @@ export class TypebotService extends BaseChatbotService { urlTypebot = `${url}/api/v1/sessions/${data?.sessionId}/continueChat`; reqData = { message: content, + instanceName: instance.name, + apiKey: this.configService.get('AUTHENTICATION').API_KEY.KEY, + pushName: msg?.pushName, + messageType: getTypeMessage(msg).messageType, }; } else { urlTypebot = `${url}/api/v1/sendMessage`; reqData = { message: content, sessionId: data?.sessionId, + instanceName: instance.name, + apiKey: this.configService.get('AUTHENTICATION').API_KEY.KEY, + pushName: msg?.pushName, + messageType: getTypeMessage(msg).messageType, }; } @@ -743,7 +757,10 @@ export class TypebotService extends BaseChatbotService { remoteJid: remoteJid, pushName: msg?.pushName, botId: findTypebot.id, - prefilledVariables: prefilledVariables, + prefilledVariables: { + ...prefilledVariables, + messageType: getTypeMessage(msg).messageType, + }, }); if (data?.session) { @@ -818,12 +835,20 @@ export class TypebotService extends BaseChatbotService { urlTypebot = `${url}/api/v1/sessions/${data?.sessionId}/continueChat`; reqData = { message: content, + instanceName: instance.name, + apiKey: this.configService.get('AUTHENTICATION').API_KEY.KEY, + pushName: msg?.pushName, + messageType: getTypeMessage(msg).messageType, }; } else { urlTypebot = `${url}/api/v1/sendMessage`; reqData = { message: content, sessionId: data?.sessionId, + instanceName: instance.name, + apiKey: this.configService.get('AUTHENTICATION').API_KEY.KEY, + pushName: msg?.pushName, + messageType: getTypeMessage(msg).messageType, }; } request = await axios.post(urlTypebot, reqData); @@ -904,17 +929,25 @@ export class TypebotService extends BaseChatbotService { // Continue existing chat const version = this.configService.get('TYPEBOT').API_VERSION; let urlTypebot: string; - let reqData: { message: string; sessionId?: string }; + let reqData: any; if (version === 'latest') { urlTypebot = `${url}/api/v1/sessions/${session.sessionId.split('-')[1]}/continueChat`; reqData = { message: content, + instanceName: instance.name, + apiKey: this.configService.get('AUTHENTICATION').API_KEY.KEY, + pushName: msg?.pushName, + messageType: getTypeMessage(msg).messageType, }; } else { urlTypebot = `${url}/api/v1/sendMessage`; reqData = { message: content, sessionId: session.sessionId.split('-')[1], + instanceName: instance.name, + apiKey: this.configService.get('AUTHENTICATION').API_KEY.KEY, + pushName: msg?.pushName, + messageType: getTypeMessage(msg).messageType, }; } diff --git a/src/utils/getConversationMessage.ts b/src/utils/getConversationMessage.ts index a7650968..487f0082 100644 --- a/src/utils/getConversationMessage.ts +++ b/src/utils/getConversationMessage.ts @@ -1,6 +1,6 @@ import { configService, S3 } from '@config/env.config'; -const getTypeMessage = (msg: any) => { +export const getTypeMessage = (msg: any) => { let mediaId: string; if (configService.get('S3').ENABLE) mediaId = msg.message?.mediaUrl;