diff --git a/src/whatsapp/controllers/chatwoot.controller.ts b/src/whatsapp/controllers/chatwoot.controller.ts index a4367833..d66901ef 100644 --- a/src/whatsapp/controllers/chatwoot.controller.ts +++ b/src/whatsapp/controllers/chatwoot.controller.ts @@ -66,6 +66,18 @@ export class ChatwootController { const urlServer = this.configService.get('SERVER').URL; + if (Object.keys(result).length === 0) { + return { + enabled: false, + url: '', + account_id: '', + token: '', + sign_msg: false, + name_inbox: '', + webhook_url: '', + }; + } + const response = { ...result, webhook_url: `${urlServer}/chatwoot/webhook/${instance.instanceName}`, diff --git a/src/whatsapp/services/webhook.service.ts b/src/whatsapp/services/webhook.service.ts index dbc98d7c..2370e05b 100644 --- a/src/whatsapp/services/webhook.service.ts +++ b/src/whatsapp/services/webhook.service.ts @@ -18,9 +18,17 @@ export class WebhookService { public async find(instance: InstanceDto): Promise { try { this.logger.verbose('find webhook: ' + instance.instanceName); - return await this.waMonitor.waInstances[instance.instanceName].findWebhook(); + const result = await this.waMonitor.waInstances[ + instance.instanceName + ].findWebhook(); + + if (Object.keys(result).length === 0) { + throw new Error('Webhook not found'); + } + + return result; } catch (error) { - return { enabled: null, url: '' }; + return { enabled: false, url: '', events: [], webhook_by_events: false }; } } } diff --git a/src/whatsapp/services/whatsapp.service.ts b/src/whatsapp/services/whatsapp.service.ts index 360c8905..ff19b309 100644 --- a/src/whatsapp/services/whatsapp.service.ts +++ b/src/whatsapp/services/whatsapp.service.ts @@ -1334,29 +1334,27 @@ export class WAStartupService { private createJid(number: string): string { this.logger.verbose('Creating jid with number: ' + number); - const numberReplace = number.replace(/[^0-9]/g, ''); - - if (numberReplace.includes('@g.us') || numberReplace.includes('@s.whatsapp.net')) { + if (number.includes('@g.us') || number.includes('@s.whatsapp.net')) { this.logger.verbose('Number already contains @g.us or @s.whatsapp.net'); - return numberReplace; + return number; } - if (numberReplace.includes('@broadcast')) { + if (number.includes('@broadcast')) { this.logger.verbose('Number already contains @broadcast'); - return numberReplace; + return number; } - const formattedBRNumber = this.formatBRNumber(numberReplace); - if (formattedBRNumber !== numberReplace) { + const formattedBRNumber = this.formatBRNumber(number); + if (formattedBRNumber !== number) { this.logger.verbose( 'Jid created is whatsapp in format BR: ' + `${formattedBRNumber}@s.whatsapp.net`, ); return `${formattedBRNumber}@s.whatsapp.net`; } - const formattedMXARNumber = this.formatMXOrARNumber(numberReplace); + const formattedMXARNumber = this.formatMXOrARNumber(number); - if (formattedMXARNumber !== numberReplace) { + if (formattedMXARNumber !== number) { this.logger.verbose( 'Jid created is whatsapp in format MXAR: ' + `${formattedMXARNumber}@s.whatsapp.net`, @@ -1364,13 +1362,13 @@ export class WAStartupService { return `${formattedMXARNumber}@s.whatsapp.net`; } - if (numberReplace.includes('-')) { - this.logger.verbose('Jid created is group: ' + `${numberReplace}@g.us`); - return `${numberReplace}@g.us`; + if (number.includes('-')) { + this.logger.verbose('Jid created is group: ' + `${number}@g.us`); + return `${number}@g.us`; } - this.logger.verbose('Jid created is whatsapp: ' + `${numberReplace}@s.whatsapp.net`); - return `${numberReplace}@s.whatsapp.net`; + this.logger.verbose('Jid created is whatsapp: ' + `${number}@s.whatsapp.net`); + return `${number}@s.whatsapp.net`; } public async profilePicture(number: string) {