Fix Typebot build

This commit is contained in:
VambertoFarias 2025-07-05 10:09:49 -03:00
parent 39606240da
commit 72b3cc82b3
2 changed files with 51 additions and 18 deletions

View File

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

View File

@ -1,6 +1,6 @@
import { configService, S3 } from '@config/env.config'; import { configService, S3 } from '@config/env.config';
const getTypeMessage = (msg: any) => { export const getTypeMessage = (msg: any) => {
let mediaId: string; let mediaId: string;
if (configService.get<S3>('S3').ENABLE) mediaId = msg.message?.mediaUrl; if (configService.get<S3>('S3').ENABLE) mediaId = msg.message?.mediaUrl;