From 16a9d1faf5ac285b817e0c7fb81a3b9e50a4880a Mon Sep 17 00:00:00 2001 From: pedro-php Date: Fri, 13 Jun 2025 13:14:04 -0300 Subject: [PATCH] fixes --- docker-compose.yaml | 4 +- src/api/controllers/call.controller.ts | 11 ----- .../evolution/evolution.channel.service.ts | 3 -- .../channel/meta/whatsapp.business.service.ts | 3 -- .../whatsapp/whatsapp.baileys.service.ts | 44 +++++-------------- src/api/integrations/event/event.manager.ts | 1 - .../event/webhook/webhook.controller.ts | 18 -------- src/api/routes/call.router.ts | 25 ----------- src/api/routes/index.router.ts | 4 -- src/api/server.module.ts | 2 - src/api/services/channel.service.ts | 1 - src/cache/rediscache.client.ts | 4 +- 12 files changed, 18 insertions(+), 102 deletions(-) delete mode 100644 src/api/controllers/call.controller.ts diff --git a/docker-compose.yaml b/docker-compose.yaml index 6f14d26e..a86c90ff 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -2,13 +2,15 @@ services: api: container_name: evolution_api_${ENVIROMNENT} build: . - image: adaptweb/evolution-api:1.6.1 + image: adaptweb/evolution-api:1.7.0 restart: always depends_on: - redis - postgres ports: - ${MIRROR_PORT}:8080 + extra_hosts: + - "host.docker.internal:host-gateway" volumes: - evolution_instances:/evolution/instances networks: diff --git a/src/api/controllers/call.controller.ts b/src/api/controllers/call.controller.ts deleted file mode 100644 index abc29804..00000000 --- a/src/api/controllers/call.controller.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { OfferCallDto } from '@api/dto/call.dto'; -import { InstanceDto } from '@api/dto/instance.dto'; -import { WAMonitoringService } from '@api/services/monitor.service'; - -export class CallController { - constructor(private readonly waMonitor: WAMonitoringService) {} - - public async offerCall({ instanceName }: InstanceDto, data: OfferCallDto) { - return await this.waMonitor.waInstances[instanceName].offerCall(data); - } -} diff --git a/src/api/integrations/channel/evolution/evolution.channel.service.ts b/src/api/integrations/channel/evolution/evolution.channel.service.ts index dba02751..31da5a6d 100644 --- a/src/api/integrations/channel/evolution/evolution.channel.service.ts +++ b/src/api/integrations/channel/evolution/evolution.channel.service.ts @@ -782,9 +782,6 @@ export class EvolutionStartupService extends ChannelStartupService { public async fetchProfile() { throw new BadRequestException('Method not available on Evolution Channel'); } - public async offerCall() { - throw new BadRequestException('Method not available on WhatsApp Business API'); - } public async sendPresence() { throw new BadRequestException('Method not available on Evolution Channel'); } diff --git a/src/api/integrations/channel/meta/whatsapp.business.service.ts b/src/api/integrations/channel/meta/whatsapp.business.service.ts index de6c5028..ec90d3f7 100644 --- a/src/api/integrations/channel/meta/whatsapp.business.service.ts +++ b/src/api/integrations/channel/meta/whatsapp.business.service.ts @@ -1410,9 +1410,6 @@ export class BusinessStartupService extends ChannelStartupService { public async fetchProfile() { throw new BadRequestException('Method not available on WhatsApp Business API'); } - public async offerCall() { - throw new BadRequestException('Method not available on WhatsApp Business API'); - } public async sendPresence() { throw new BadRequestException('Method not available on WhatsApp Business API'); } diff --git a/src/api/integrations/channel/whatsapp/whatsapp.baileys.service.ts b/src/api/integrations/channel/whatsapp/whatsapp.baileys.service.ts index bd399f13..312e8e6e 100644 --- a/src/api/integrations/channel/whatsapp/whatsapp.baileys.service.ts +++ b/src/api/integrations/channel/whatsapp/whatsapp.baileys.service.ts @@ -1,5 +1,4 @@ import { getCollectionsDto } from '@api/dto/business.dto'; -import { OfferCallDto } from '@api/dto/call.dto'; import { ArchiveChatDto, BlockUserDto, @@ -383,7 +382,7 @@ export class BaileysStartupService extends ChannelStartupService { qrcodeTerminal.generate(qr, { small: true }, (qrcode) => this.logger.log( `\n{ instance: ${this.instance.name} pairingCode: ${this.instance.qrcode.pairingCode}, qrcodeCount: ${this.instance.qrcode.count} }\n` + - qrcode, + qrcode, ), ); @@ -1024,18 +1023,18 @@ export class BaileysStartupService extends ChannelStartupService { const messagesRepository: Set = new Set( chatwootImport.getRepositoryMessagesCache(instance) ?? - ( - await this.prismaRepository.message.findMany({ - select: { key: true }, - where: { instanceId: this.instanceId }, - }) - ).map((message) => { - const key = message.key as { - id: string; - }; + ( + await this.prismaRepository.message.findMany({ + select: { key: true }, + where: { instanceId: this.instanceId }, + }) + ).map((message) => { + const key = message.key as { + id: string; + }; - return key.id; - }), + return key.id; + }), ); if (chatwootImport.getRepositoryMessagesCache(instance) === null) { @@ -1651,13 +1650,10 @@ export class BaileysStartupService extends ChannelStartupService { private readonly groupHandler = { 'groups.upsert': (groupMetadata: GroupMetadata[]) => { - console.dir({groupMetadata}, { depth: null }); this.sendDataWebhook(Events.GROUPS_UPSERT, groupMetadata); }, 'groups.update': (groupMetadataUpdate: Partial[]) => { - console.dir({groupMetadataUpdate}, { depth: null }); - console.dir("1-groupMetadataUpdate"); this.sendDataWebhook(Events.GROUPS_UPDATE, groupMetadataUpdate); groupMetadataUpdate.forEach((group) => { @@ -1672,7 +1668,6 @@ export class BaileysStartupService extends ChannelStartupService { participants: string[]; action: ParticipantAction; }) => { - console.dir(participantsUpdate, { depth: null }) this.sendDataWebhook(Events.GROUP_PARTICIPANTS_UPDATE, participantsUpdate); this.updateGroupMetadataCache(participantsUpdate.id); @@ -2002,19 +1997,6 @@ export class BaileysStartupService extends ChannelStartupService { } } - public async offerCall({ number, isVideo, callDuration }: OfferCallDto) { - const jid = createJid(number); - - try { - const call = await this.client.offerCall(jid, isVideo); - setTimeout(() => this.client.terminateCall(call.id, call.to), callDuration * 1000); - - return call; - } catch (error) { - return error; - } - } - private async sendMessage( sender: string, message: any, @@ -3448,7 +3430,6 @@ export class BaileysStartupService extends ChannelStartupService { const filteredNumbers = numbersToVerify.filter( (jid) => !cachedNumbers.some((cached) => cached.jidOptions.includes(jid)), ); - const verify = await this.client.onWhatsApp(...filteredNumbers); const users: OnWhatsAppDto[] = await Promise.all( jids.users.map(async (user) => { @@ -3515,7 +3496,6 @@ export class BaileysStartupService extends ChannelStartupService { }; }), ); - await saveOnWhatsappCache(users.filter((user) => user.exists).map((user) => ({ remoteJid: user.jid }))); onWhatsapp.push(...users); diff --git a/src/api/integrations/event/event.manager.ts b/src/api/integrations/event/event.manager.ts index d70a4450..4b4a310c 100644 --- a/src/api/integrations/event/event.manager.ts +++ b/src/api/integrations/event/event.manager.ts @@ -113,7 +113,6 @@ export class EventManager { local?: boolean; integration?: string[]; }): Promise { - if(eventData.event === 'groups.update') console.dir(3); await this.websocket.emit(eventData); await this.rabbitmq.emit(eventData); await this.nats.emit(eventData); diff --git a/src/api/integrations/event/webhook/webhook.controller.ts b/src/api/integrations/event/webhook/webhook.controller.ts index 1cc4d8a3..9e89d25e 100644 --- a/src/api/integrations/event/webhook/webhook.controller.ts +++ b/src/api/integrations/event/webhook/webhook.controller.ts @@ -65,13 +65,10 @@ export class WebhookController extends EventController implements EventControlle local, integration, }: EmitData): Promise { - if(event === 'groups.update')console.dir(4); if (integration && !integration.includes('webhook')) { return; } - if(event === 'groups.update')console.dir(5); const instance = (await this.get(instanceName)) as wa.LocalWebHook; - if(event === 'groups.update')console.dir(6); const webhookConfig = configService.get('WEBHOOK'); const webhookLocal = instance?.events; const webhookHeaders = instance?.headers; @@ -90,42 +87,29 @@ export class WebhookController extends EventController implements EventControlle server_url: serverUrl, apikey: apiKey, }; - if(event === 'groups.update')console.dir(7); if (local && instance?.enabled) { - if(event === 'groups.update')console.dir(7.1); - console.dir({webhookLocal, we}) if (Array.isArray(webhookLocal) && webhookLocal.includes(we)) { let baseURL: string; - if(event === 'groups.update')console.dir(7.2); if (instance?.webhookByEvents) { - if(event === 'groups.update')console.dir(7.21); baseURL = `${instance?.url}/${transformedWe}`; } else { - if(event === 'groups.update')console.dir(7.22); baseURL = instance?.url; } - if(event === 'groups.update')console.dir(7.3); if (enabledLog) { const logData = { local: `${origin}.sendData-Webhook`, url: baseURL, ...webhookData, }; - if(event === 'groups.update')console.dir(7.4); this.logger.log(logData); } try { - if(event === 'groups.update')console.dir(7.5); if (instance?.enabled && regex.test(instance.url)) { - if(event === 'groups.update')console.dir(7.6); const httpService = axios.create({ baseURL, headers: webhookHeaders as Record | undefined, }); - if(event === 'groups.update')console.dir(7.7); - console.dir({url:`${origin}.sendData-Webhook`, baseURL, serverUrl}, {depth: null}) - if(event === 'groups.update')console.dir(7.8); await this.retryWebhookRequest(httpService, webhookData, `${origin}.sendData-Webhook`, baseURL, serverUrl); } } catch (error) { @@ -144,7 +128,6 @@ export class WebhookController extends EventController implements EventControlle } } } - if(event === 'groups.update')console.dir(8); if (webhookConfig.GLOBAL?.ENABLED) { if (webhookConfig.EVENTS[we]) { let globalURL = webhookConfig.GLOBAL.URL; @@ -191,7 +174,6 @@ export class WebhookController extends EventController implements EventControlle } } } - if(event === 'groups.update')console.dir(9) } private async retryWebhookRequest( diff --git a/src/api/routes/call.router.ts b/src/api/routes/call.router.ts index e049cc4f..e69de29b 100644 --- a/src/api/routes/call.router.ts +++ b/src/api/routes/call.router.ts @@ -1,25 +0,0 @@ -import { RouterBroker } from '@api/abstract/abstract.router'; -import { OfferCallDto } from '@api/dto/call.dto'; -import { callController } from '@api/server.module'; -import { offerCallSchema } from '@validate/validate.schema'; -import { RequestHandler, Router } from 'express'; - -import { HttpStatus } from './index.router'; - -export class CallRouter extends RouterBroker { - constructor(...guards: RequestHandler[]) { - super(); - this.router.post(this.routerPath('offer'), ...guards, async (req, res) => { - const response = await this.dataValidate({ - request: req, - schema: offerCallSchema, - ClassRef: OfferCallDto, - execute: (instance, data) => callController.offerCall(instance, data), - }); - - return res.status(HttpStatus.CREATED).json(response); - }); - } - - public readonly router: Router = Router(); -} diff --git a/src/api/routes/index.router.ts b/src/api/routes/index.router.ts index df85aa17..94d0aabd 100644 --- a/src/api/routes/index.router.ts +++ b/src/api/routes/index.router.ts @@ -12,7 +12,6 @@ import mimeTypes from 'mime-types'; import path from 'path'; import { BusinessRouter } from './business.router'; -import { CallRouter } from './call.router'; import { ChatRouter } from './chat.router'; import { GroupRouter } from './group.router'; import { HealthRouter } from './health.router'; @@ -58,8 +57,6 @@ router.get('/assets/*', (req, res) => { } }); -console.dir(new HealthRouter().router, { depth: null }); - router .use((req, res, next) => telemetry.collectTelemetry(req, res, next)) @@ -85,7 +82,6 @@ router .use('', new HealthRouter().router) .use('/instance', new InstanceRouter(configService, ...guards).router) .use('/message', new MessageRouter(...guards).router) - .use('/call', new CallRouter(...guards).router) .use('/chat', new ChatRouter(...guards).router) .use('/business', new BusinessRouter(...guards).router) .use('/group', new GroupRouter(...guards).router) diff --git a/src/api/server.module.ts b/src/api/server.module.ts index 95ec68ff..6a41aabd 100644 --- a/src/api/server.module.ts +++ b/src/api/server.module.ts @@ -4,7 +4,6 @@ import { eventEmitter } from '@config/event.config'; import { Logger } from '@config/logger.config'; import { BusinessController } from './controllers/business.controller'; -import { CallController } from './controllers/call.controller'; import { ChatController } from './controllers/chat.controller'; import { GroupController } from './controllers/group.controller'; import { HealthController } from './controllers/health.controller'; @@ -98,7 +97,6 @@ export const instanceController = new InstanceController( providerFiles, ); export const sendMessageController = new SendMessageController(waMonitor); -export const callController = new CallController(waMonitor); export const chatController = new ChatController(waMonitor); export const businessController = new BusinessController(waMonitor); export const groupController = new GroupController(waMonitor); diff --git a/src/api/services/channel.service.ts b/src/api/services/channel.service.ts index b584f415..c7c537b2 100644 --- a/src/api/services/channel.service.ts +++ b/src/api/services/channel.service.ts @@ -439,7 +439,6 @@ export class ChannelStartupService { const expose = this.configService.get('AUTHENTICATION').EXPOSE_IN_FETCH_INSTANCES; const instanceApikey = this.token || 'Apikey not found'; - if(event === Events.GROUPS_UPDATE )console.dir(2); await eventManager.emit({ instanceName: this.instance.name, origin: ChannelStartupService.name, diff --git a/src/cache/rediscache.client.ts b/src/cache/rediscache.client.ts index af5f8f1b..fd23ea0e 100644 --- a/src/cache/rediscache.client.ts +++ b/src/cache/rediscache.client.ts @@ -40,7 +40,9 @@ class Redis { }); try { - this.client.connect().then(()=> {this.logger.verbose("Attempting redis connection")}); + this.client.connect().then(() => { + this.logger.verbose('Attempting redis connection'); + }); this.connected = true; } catch (e) { this.connected = false;