diff --git a/.env.example b/.env.example index 2c497d841..2e25e8836 100644 --- a/.env.example +++ b/.env.example @@ -111,6 +111,7 @@ QRCODE_LIMIT=30 QRCODE_COLOR='#175197' TYPEBOT_ENABLED=false +TYPEBOT_SEND_MEDIA_BASE64=true TYPEBOT_API_VERSION=latest CHATWOOT_ENABLED=false diff --git a/src/api/integrations/typebot/services/typebot.service.ts b/src/api/integrations/typebot/services/typebot.service.ts index a4be5ef26..bd5bc822f 100644 --- a/src/api/integrations/typebot/services/typebot.service.ts +++ b/src/api/integrations/typebot/services/typebot.service.ts @@ -1,7 +1,7 @@ import { Message, TypebotSession } from '@prisma/client'; import axios from 'axios'; -import { Auth, ConfigService, Typebot } from '../../../../config/env.config'; +import { ConfigService, Typebot } from '../../../../config/env.config'; import { Logger } from '../../../../config/logger.config'; import { InstanceDto } from '../../../dto/instance.dto'; import { PrismaRepository } from '../../../repository/repository.service'; @@ -484,25 +484,35 @@ export class TypebotService { const remoteJid = data.remoteJid; const status = data.status; - const session = await this.prismaRepository.typebotSession.updateMany({ - where: { - instanceId: instanceId, + if (status === 'closed') { + await this.prismaRepository.typebotSession.deleteMany({ + where: { + remoteJid: remoteJid, + }, + }); + + return { typebot: { ...instance, typebot: { remoteJid: remoteJid, status: status } } }; + } else { + const session = await this.prismaRepository.typebotSession.updateMany({ + where: { + instanceId: instanceId, + remoteJid: remoteJid, + }, + data: { + status: status, + }, + }); + + const typebotData = { remoteJid: remoteJid, - }, - data: { status: status, - }, - }); - - const typebotData = { - remoteJid: remoteJid, - status: status, - session, - }; + session, + }; - this.waMonitor.waInstances[instance.instanceName].sendDataWebhook(Events.TYPEBOT_CHANGE_STATUS, typebotData); + this.waMonitor.waInstances[instance.instanceName].sendDataWebhook(Events.TYPEBOT_CHANGE_STATUS, typebotData); - return { typebot: { ...instance, typebot: typebotData } }; + return { typebot: { ...instance, typebot: typebotData } }; + } } catch (error) { this.logger.error(error); throw new Error('Error changing status'); @@ -569,9 +579,6 @@ export class TypebotService { instanceName: instance.instanceName, }; - if (this.configService.get('AUTHENTICATION').EXPOSE_IN_FETCH_INSTANCES) - prefilledVariables['token'] = instance.token; - if (variables?.length) { variables.forEach((variable: { name: string | number; value: string }) => { prefilledVariables[variable.name] = variable.value; diff --git a/src/api/services/channels/whatsapp.baileys.service.ts b/src/api/services/channels/whatsapp.baileys.service.ts index 31525ad74..389346cb5 100644 --- a/src/api/services/channels/whatsapp.baileys.service.ts +++ b/src/api/services/channels/whatsapp.baileys.service.ts @@ -1120,7 +1120,11 @@ export class BaileysStartupService extends ChannelStartupService { const contentMsg = received?.message[getContentType(received.message)] as any; - if (this.localWebhook.webhookBase64 === true && isMedia) { + if ( + this.localWebhook.webhookBase64 === true || + (this.configService.get('TYPEBOT').SEND_MEDIA_BASE64 && isMedia) + ) { + console.log('Download media'); const buffer = await downloadMediaMessage( { key: received.key, message: received?.message }, 'buffer', diff --git a/src/config/env.config.ts b/src/config/env.config.ts index ee835762c..e3a874666 100644 --- a/src/config/env.config.ts +++ b/src/config/env.config.ts @@ -176,7 +176,7 @@ export type SslConf = { PRIVKEY: string; FULLCHAIN: string }; export type Webhook = { GLOBAL?: GlobalWebhook; EVENTS: EventsWebhook }; export type ConfigSessionPhone = { CLIENT: string; NAME: string; VERSION: string }; export type QrCode = { LIMIT: number; COLOR: string }; -export type Typebot = { ENABLED: boolean; API_VERSION: string }; +export type Typebot = { ENABLED: boolean; API_VERSION: string; SEND_MEDIA_BASE64: boolean }; export type Chatwoot = { ENABLED: boolean; MESSAGE_DELETE: boolean; @@ -403,6 +403,7 @@ export class ConfigService { TYPEBOT: { ENABLED: process.env?.TYPEBOT_ENABLED === 'true', API_VERSION: process.env?.TYPEBOT_API_VERSION || 'old', + SEND_MEDIA_BASE64: process.env?.TYPEBOT_SEND_MEDIA_BASE64 === 'true', }, CHATWOOT: { ENABLED: process.env?.CHATWOOT_ENABLED === 'true',