From 7a24f52782ee2c9c549cc6116f75134cceba87fd Mon Sep 17 00:00:00 2001 From: Davidson Gomes Date: Mon, 11 Dec 2023 17:32:07 -0300 Subject: [PATCH] feat: added auto_create to the chatwoot set to create the inbox automatically or not --- src/config/error.config.ts | 2 -- src/validate/validate.schema.ts | 1 + src/whatsapp/controllers/chatwoot.controller.ts | 1 + src/whatsapp/controllers/instance.controller.ts | 9 +-------- src/whatsapp/dto/chatwoot.dto.ts | 1 + src/whatsapp/services/chatwoot.service.ts | 15 ++++++++++++++- 6 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/config/error.config.ts b/src/config/error.config.ts index dbba0d6a..6449d52e 100644 --- a/src/config/error.config.ts +++ b/src/config/error.config.ts @@ -8,7 +8,6 @@ export function onUnexpectedError() { stderr: process.stderr.fd, error, }); - // process.exit(1); }); process.on('unhandledRejection', (error, origin) => { @@ -18,6 +17,5 @@ export function onUnexpectedError() { stderr: process.stderr.fd, error, }); - // process.exit(1); }); } diff --git a/src/validate/validate.schema.ts b/src/validate/validate.schema.ts index 4fad3269..a468b151 100644 --- a/src/validate/validate.schema.ts +++ b/src/validate/validate.schema.ts @@ -891,6 +891,7 @@ export const chatwootSchema: JSONSchema7 = { sign_msg: { type: 'boolean', enum: [true, false] }, reopen_conversation: { type: 'boolean', enum: [true, false] }, conversation_pending: { type: 'boolean', enum: [true, false] }, + auto_create: { type: 'boolean', enum: [true, false] }, }, required: ['enabled', 'account_id', 'token', 'url', 'sign_msg', 'reopen_conversation', 'conversation_pending'], ...isNotEmpty('account_id', 'token', 'url', 'sign_msg', 'reopen_conversation', 'conversation_pending'), diff --git a/src/whatsapp/controllers/chatwoot.controller.ts b/src/whatsapp/controllers/chatwoot.controller.ts index 40ab1bca..2aef63c8 100644 --- a/src/whatsapp/controllers/chatwoot.controller.ts +++ b/src/whatsapp/controllers/chatwoot.controller.ts @@ -42,6 +42,7 @@ export class ChatwootController { data.sign_msg = false; data.reopen_conversation = false; data.conversation_pending = false; + data.auto_create = false; } data.name_inbox = instance.instanceName; diff --git a/src/whatsapp/controllers/instance.controller.ts b/src/whatsapp/controllers/instance.controller.ts index 1087bed4..8480c675 100644 --- a/src/whatsapp/controllers/instance.controller.ts +++ b/src/whatsapp/controllers/instance.controller.ts @@ -446,15 +446,8 @@ export class InstanceController { number, reopen_conversation: chatwoot_reopen_conversation || false, conversation_pending: chatwoot_conversation_pending || false, + auto_create: true, }); - - this.chatwootService.initInstanceChatwoot( - instance, - instance.instanceName.split('-cwId-')[0], - `${urlServer}/chatwoot/webhook/${encodeURIComponent(instance.instanceName)}`, - qrcode, - number, - ); } catch (error) { this.logger.log(error); } diff --git a/src/whatsapp/dto/chatwoot.dto.ts b/src/whatsapp/dto/chatwoot.dto.ts index b270c869..22085faf 100644 --- a/src/whatsapp/dto/chatwoot.dto.ts +++ b/src/whatsapp/dto/chatwoot.dto.ts @@ -8,4 +8,5 @@ export class ChatwootDto { number?: string; reopen_conversation?: boolean; conversation_pending?: boolean; + auto_create?: boolean; } diff --git a/src/whatsapp/services/chatwoot.service.ts b/src/whatsapp/services/chatwoot.service.ts index 5523ccf2..6e292191 100644 --- a/src/whatsapp/services/chatwoot.service.ts +++ b/src/whatsapp/services/chatwoot.service.ts @@ -6,7 +6,7 @@ import Jimp from 'jimp'; import mimeTypes from 'mime-types'; import path from 'path'; -import { ConfigService } from '../../config/env.config'; +import { ConfigService, HttpServer } from '../../config/env.config'; import { Logger } from '../../config/logger.config'; import { ROOT_DIR } from '../../config/path.config'; import { ChatwootDto } from '../dto/chatwoot.dto'; @@ -99,9 +99,22 @@ export class ChatwootService { public create(instance: InstanceDto, data: ChatwootDto) { this.logger.verbose('create chatwoot: ' + instance.instanceName); + this.waMonitor.waInstances[instance.instanceName].setChatwoot(data); this.logger.verbose('chatwoot created'); + + if (data.auto_create) { + const urlServer = this.configService.get('SERVER').URL; + + this.initInstanceChatwoot( + instance, + instance.instanceName.split('-cwId-')[0], + `${urlServer}/chatwoot/webhook/${encodeURIComponent(instance.instanceName)}`, + true, + data.number, + ); + } return data; }