diff --git a/src/config/env.config.ts b/src/config/env.config.ts index 9c63b893..15e70dd6 100644 --- a/src/config/env.config.ts +++ b/src/config/env.config.ts @@ -70,6 +70,10 @@ export type Websocket = { ENABLED: boolean; }; +export type Chatwoot = { + USE_REPLY_ID: boolean; +}; + export type EventsWebhook = { APPLICATION_STARTUP: boolean; QRCODE_UPDATED: boolean; @@ -134,6 +138,7 @@ export interface Env { QRCODE: QrCode; AUTHENTICATION: Auth; PRODUCTION?: Production; + CHATWOOT?: Chatwoot; } export type Key = keyof Env; @@ -224,9 +229,7 @@ export class ConfigService { COLOR: process.env?.LOG_COLOR === 'true', BAILEYS: (process.env?.LOG_BAILEYS as LogBaileys) || 'error', }, - DEL_INSTANCE: process.env?.DEL_INSTANCE === 'true' - ? 5 - : Number.parseInt(process.env.DEL_INSTANCE) || false, + DEL_INSTANCE: process.env?.DEL_INSTANCE === 'true' ? 5 : Number.parseInt(process.env.DEL_INSTANCE) || false, WEBHOOK: { GLOBAL: { URL: process.env?.WEBHOOK_GLOBAL_URL, @@ -278,6 +281,9 @@ export class ConfigService { SECRET: process.env.AUTHENTICATION_JWT_SECRET, }, }, + CHATWOOT: { + USE_REPLY_ID: process.env?.USE_REPLY_ID === 'true', + }, }; } } diff --git a/src/dev-env.yml b/src/dev-env.yml index 235ec1b7..9f24f5a1 100644 --- a/src/dev-env.yml +++ b/src/dev-env.yml @@ -145,4 +145,8 @@ AUTHENTICATION: # Set the secret key to encrypt and decrypt your token and its expiration time. JWT: EXPIRIN_IN: 0 # seconds - 3600s === 1h | zero (0) - never expires - SECRET: L=0YWt]b2w[WF>#>:&E` \ No newline at end of file + SECRET: L=0YWt]b2w[WF>#>:&E` + +# Configure to chatwoot +CHATWOOT: + USE_REPLY_ID: false \ No newline at end of file diff --git a/src/whatsapp/services/chatwoot.service.ts b/src/whatsapp/services/chatwoot.service.ts index 56a90f67..06534bcf 100644 --- a/src/whatsapp/services/chatwoot.service.ts +++ b/src/whatsapp/services/chatwoot.service.ts @@ -5,7 +5,7 @@ import { createReadStream, readFileSync, unlinkSync, writeFileSync } from 'fs'; import mimeTypes from 'mime-types'; import path from 'path'; -import { ConfigService } from '../../config/env.config'; +import { Chatwoot, ConfigService } from '../../config/env.config'; import { Logger } from '../../config/logger.config'; import { ROOT_DIR } from '../../config/path.config'; import { ChatwootDto } from '../dto/chatwoot.dto'; @@ -966,25 +966,29 @@ export class ChatwootService { messageId: number, sourceId: string | null, ) { - this.logger.verbose('update message to chatwoot instance: ' + instance.instanceName); - const client = await this.clientCw(instance); + // const useReplyId = this.configService.get('DEL_INSTANCE'); + const useReplyId = this.configService.get('CHATWOOT')?.USE_REPLY_ID; + if (useReplyId === true) { + this.logger.verbose('update message to chatwoot instance: ' + instance.instanceName); + const client = await this.clientCw(instance); - if (!client) { - this.logger.warn('client not found'); - return null; - } - this.logger.verbose('check if sourceId to update'); - if (sourceId) { - this.logger.verbose('update message to chatwoot'); - const dataUpdated = { - source_id: sourceId, - }; - await client.messages.update({ - accountId, - conversationId, - data: dataUpdated, - messageId, - }); + if (!client) { + this.logger.warn('client not found'); + return null; + } + this.logger.verbose('check if sourceId to update'); + if (sourceId) { + this.logger.verbose('update message to chatwoot'); + const dataUpdated = { + source_id: sourceId, + }; + await client.messages.update({ + accountId, + conversationId, + data: dataUpdated, + messageId, + }); + } } }