From bdd1b8fa21dfc0f644ff583a2d6d8770bedb4c81 Mon Sep 17 00:00:00 2001 From: Davidson Gomes Date: Thu, 6 Jun 2024 18:04:45 -0300 Subject: [PATCH] log: removed excessive verbose logs --- src/api/controllers/chat.controller.ts | 25 -- src/api/controllers/group.controller.ts | 19 - src/api/controllers/instance.controller.ts | 42 --- src/api/controllers/label.controller.ts | 5 - src/api/controllers/proxy.controller.ts | 10 - src/api/controllers/sendMessage.controller.ts | 23 -- src/api/controllers/settings.controller.ts | 6 - src/api/controllers/webhook.controller.ts | 9 - .../controllers/chatwoot.controller.ts | 9 - .../chatwoot/libs/postgres.client.ts | 1 - .../chatwoot/routes/chatwoot.router.ts | 21 -- .../chatwoot/services/chatwoot.service.ts | 247 ------------ .../controllers/rabbitmq.controller.ts | 8 - .../rabbitmq/routes/rabbitmq.router.ts | 15 - .../rabbitmq/services/rabbitmq.service.ts | 2 - .../sqs/controllers/sqs.controller.ts | 7 - src/api/integrations/sqs/routes/sqs.router.ts | 15 - .../integrations/sqs/services/sqs.service.ts | 2 - .../typebot/controllers/typebot.controller.ts | 10 - .../typebot/routes/typebot.router.ts | 27 -- .../typebot/services/typebot.service.ts | 44 +-- .../controllers/websocket.controller.ts | 8 - .../websocket/libs/socket.server.ts | 2 - .../websocket/routes/websocket.router.ts | 15 - .../websocket/services/websocket.service.ts | 2 - src/api/routes/chat.router.ts | 156 -------- src/api/routes/group.router.ts | 100 ----- src/api/routes/instance.router.ts | 52 --- src/api/routes/label.router.ts | 17 - src/api/routes/proxy.router.ts | 15 - src/api/routes/sendMessage.router.ts | 75 ---- src/api/routes/settings.router.ts | 15 - src/api/routes/webhook.router.ts | 25 -- src/api/services/auth.service.ts | 10 - src/api/services/cache.service.ts | 10 +- src/api/services/channel.service.ts | 261 +------------ .../channels/whatsapp.baileys.service.ts | 355 ------------------ .../channels/whatsapp.business.service.ts | 91 ----- src/api/services/integration.service.ts | 2 - src/api/services/monitor.service.ts | 51 +-- src/api/services/proxy.service.ts | 2 - src/api/services/settings.service.ts | 2 - src/api/services/webhook.service.ts | 2 - src/cache/rediscache.client.ts | 2 - src/libs/prisma.connect.ts | 2 - 45 files changed, 5 insertions(+), 1814 deletions(-) diff --git a/src/api/controllers/chat.controller.ts b/src/api/controllers/chat.controller.ts index e26bf54c..17905089 100644 --- a/src/api/controllers/chat.controller.ts +++ b/src/api/controllers/chat.controller.ts @@ -1,6 +1,5 @@ import { Contact, Message, MessageUpdate } from '@prisma/client'; -import { Logger } from '../../config/logger.config'; import { ArchiveChatDto, BlockUserDto, @@ -21,118 +20,94 @@ import { InstanceDto } from '../dto/instance.dto'; import { Query } from '../repository/repository.service'; import { WAMonitoringService } from '../services/monitor.service'; -const logger = new Logger('ChatController'); - export class ChatController { constructor(private readonly waMonitor: WAMonitoringService) {} public async whatsappNumber({ instanceName }: InstanceDto, data: WhatsAppNumberDto) { - logger.verbose('requested whatsappNumber from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].whatsappNumber(data); } public async readMessage({ instanceName }: InstanceDto, data: ReadMessageDto) { - logger.verbose('requested readMessage from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].markMessageAsRead(data); } public async archiveChat({ instanceName }: InstanceDto, data: ArchiveChatDto) { - logger.verbose('requested archiveChat from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].archiveChat(data); } public async markChatUnread({ instanceName }: InstanceDto, data: MarkChatUnreadDto) { - logger.verbose('requested markChatUnread from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].markChatUnread(data); } public async deleteMessage({ instanceName }: InstanceDto, data: DeleteMessage) { - logger.verbose('requested deleteMessage from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].deleteMessage(data); } public async fetchProfilePicture({ instanceName }: InstanceDto, data: NumberDto) { - logger.verbose('requested fetchProfilePicture from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].profilePicture(data.number); } public async fetchProfile({ instanceName }: InstanceDto, data: NumberDto) { - logger.verbose('requested fetchProfile from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].fetchProfile(instanceName, data.number); } public async fetchContacts({ instanceName }: InstanceDto, query: Query) { - logger.verbose('requested fetchContacts from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].fetchContacts(query); } public async getBase64FromMediaMessage({ instanceName }: InstanceDto, data: getBase64FromMediaMessageDto) { - logger.verbose('requested getBase64FromMediaMessage from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].getBase64FromMediaMessage(data); } public async fetchMessages({ instanceName }: InstanceDto, query: Query) { - logger.verbose('requested fetchMessages from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].fetchMessages(query); } public async fetchStatusMessage({ instanceName }: InstanceDto, query: Query) { - logger.verbose('requested fetchStatusMessage from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].fetchStatusMessage(query); } public async fetchChats({ instanceName }: InstanceDto) { - logger.verbose('requested fetchChats from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].fetchChats(); } public async sendPresence({ instanceName }: InstanceDto, data: SendPresenceDto) { - logger.verbose('requested sendPresence from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].sendPresence(data); } public async fetchPrivacySettings({ instanceName }: InstanceDto) { - logger.verbose('requested fetchPrivacySettings from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].fetchPrivacySettings(); } public async updatePrivacySettings({ instanceName }: InstanceDto, data: PrivacySettingDto) { - logger.verbose('requested updatePrivacySettings from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].updatePrivacySettings(data); } public async fetchBusinessProfile({ instanceName }: InstanceDto, data: ProfilePictureDto) { - logger.verbose('requested fetchBusinessProfile from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].fetchBusinessProfile(data.number); } public async updateProfileName({ instanceName }: InstanceDto, data: ProfileNameDto) { - logger.verbose('requested updateProfileName from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].updateProfileName(data.name); } public async updateProfileStatus({ instanceName }: InstanceDto, data: ProfileStatusDto) { - logger.verbose('requested updateProfileStatus from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].updateProfileStatus(data.status); } public async updateProfilePicture({ instanceName }: InstanceDto, data: ProfilePictureDto) { - logger.verbose('requested updateProfilePicture from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].updateProfilePicture(data.picture); } public async removeProfilePicture({ instanceName }: InstanceDto) { - logger.verbose('requested removeProfilePicture from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].removeProfilePicture(); } public async updateMessage({ instanceName }: InstanceDto, data: UpdateMessageDto) { - logger.verbose('requested updateMessage from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].updateMessage(data); } public async blockUser({ instanceName }: InstanceDto, data: BlockUserDto) { - logger.verbose('requested blockUser from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].blockUser(data); } } diff --git a/src/api/controllers/group.controller.ts b/src/api/controllers/group.controller.ts index e452bc0c..0e3bdf4c 100644 --- a/src/api/controllers/group.controller.ts +++ b/src/api/controllers/group.controller.ts @@ -1,4 +1,3 @@ -import { Logger } from '../../config/logger.config'; import { AcceptGroupInvite, CreateGroupDto, @@ -16,88 +15,70 @@ import { import { InstanceDto } from '../dto/instance.dto'; import { WAMonitoringService } from '../services/monitor.service'; -const logger = new Logger('ChatController'); - export class GroupController { constructor(private readonly waMonitor: WAMonitoringService) {} public async createGroup(instance: InstanceDto, create: CreateGroupDto) { - logger.verbose('requested createGroup from ' + instance.instanceName + ' instance'); return await this.waMonitor.waInstances[instance.instanceName].createGroup(create); } public async updateGroupPicture(instance: InstanceDto, update: GroupPictureDto) { - logger.verbose('requested updateGroupPicture from ' + instance.instanceName + ' instance'); return await this.waMonitor.waInstances[instance.instanceName].updateGroupPicture(update); } public async updateGroupSubject(instance: InstanceDto, update: GroupSubjectDto) { - logger.verbose('requested updateGroupSubject from ' + instance.instanceName + ' instance'); return await this.waMonitor.waInstances[instance.instanceName].updateGroupSubject(update); } public async updateGroupDescription(instance: InstanceDto, update: GroupDescriptionDto) { - logger.verbose('requested updateGroupDescription from ' + instance.instanceName + ' instance'); return await this.waMonitor.waInstances[instance.instanceName].updateGroupDescription(update); } public async findGroupInfo(instance: InstanceDto, groupJid: GroupJid) { - logger.verbose('requested findGroupInfo from ' + instance.instanceName + ' instance'); return await this.waMonitor.waInstances[instance.instanceName].findGroup(groupJid); } public async fetchAllGroups(instance: InstanceDto, getPaticipants: GetParticipant) { - logger.verbose('requested fetchAllGroups from ' + instance.instanceName + ' instance'); return await this.waMonitor.waInstances[instance.instanceName].fetchAllGroups(getPaticipants); } public async inviteCode(instance: InstanceDto, groupJid: GroupJid) { - logger.verbose('requested inviteCode from ' + instance.instanceName + ' instance'); return await this.waMonitor.waInstances[instance.instanceName].inviteCode(groupJid); } public async inviteInfo(instance: InstanceDto, inviteCode: GroupInvite) { - logger.verbose('requested inviteInfo from ' + instance.instanceName + ' instance'); return await this.waMonitor.waInstances[instance.instanceName].inviteInfo(inviteCode); } public async sendInvite(instance: InstanceDto, data: GroupSendInvite) { - logger.verbose('requested sendInvite from ' + instance.instanceName + ' instance'); return await this.waMonitor.waInstances[instance.instanceName].sendInvite(data); } public async acceptInviteCode(instance: InstanceDto, inviteCode: AcceptGroupInvite) { - logger.verbose('requested acceptInviteCode from ' + instance.instanceName + ' instance'); return await this.waMonitor.waInstances[instance.instanceName].acceptInviteCode(inviteCode); } public async revokeInviteCode(instance: InstanceDto, groupJid: GroupJid) { - logger.verbose('requested revokeInviteCode from ' + instance.instanceName + ' instance'); return await this.waMonitor.waInstances[instance.instanceName].revokeInviteCode(groupJid); } public async findParticipants(instance: InstanceDto, groupJid: GroupJid) { - logger.verbose('requested findParticipants from ' + instance.instanceName + ' instance'); return await this.waMonitor.waInstances[instance.instanceName].findParticipants(groupJid); } public async updateGParticipate(instance: InstanceDto, update: GroupUpdateParticipantDto) { - logger.verbose('requested updateGParticipate from ' + instance.instanceName + ' instance'); return await this.waMonitor.waInstances[instance.instanceName].updateGParticipant(update); } public async updateGSetting(instance: InstanceDto, update: GroupUpdateSettingDto) { - logger.verbose('requested updateGSetting from ' + instance.instanceName + ' instance'); return await this.waMonitor.waInstances[instance.instanceName].updateGSetting(update); } public async toggleEphemeral(instance: InstanceDto, update: GroupToggleEphemeralDto) { - logger.verbose('requested toggleEphemeral from ' + instance.instanceName + ' instance'); return await this.waMonitor.waInstances[instance.instanceName].toggleEphemeral(update); } public async leaveGroup(instance: InstanceDto, groupJid: GroupJid) { - logger.verbose('requested leaveGroup from ' + instance.instanceName + ' instance'); return await this.waMonitor.waInstances[instance.instanceName].leaveGroup(groupJid); } } diff --git a/src/api/controllers/instance.controller.ts b/src/api/controllers/instance.controller.ts index 24e5e239..d5fc5c45 100644 --- a/src/api/controllers/instance.controller.ts +++ b/src/api/controllers/instance.controller.ts @@ -94,16 +94,12 @@ export class InstanceController { proxy, }: InstanceDto) { try { - this.logger.verbose('requested createInstance from ' + instanceName + ' instance'); - - this.logger.verbose('checking duplicate token'); await this.authService.checkDuplicateToken(token); if (!token && integration === Integration.WHATSAPP_BUSINESS) { throw new BadRequestException('token is required'); } - this.logger.verbose('creating instance'); let instance: BaileysStartupService | BusinessStartupService; if (integration === Integration.WHATSAPP_BUSINESS) { instance = new BusinessStartupService( @@ -139,12 +135,9 @@ export class InstanceController { instanceId: instanceId, }); - this.logger.verbose('instance: ' + instance.instanceName + ' created'); - this.waMonitor.waInstances[instance.instanceName] = instance; this.waMonitor.delInstanceTime(instance.instanceName); - this.logger.verbose('generating hash'); const hash = await this.authService.generateHash( { instanceName: instance.instanceName, @@ -153,8 +146,6 @@ export class InstanceController { token, ); - this.logger.verbose('hash: ' + hash + ' generated'); - let getWebhookEvents: string[]; if (webhook) { @@ -162,7 +153,6 @@ export class InstanceController { throw new BadRequestException('Invalid "url" property in webhook'); } - this.logger.verbose('creating webhook'); try { let newEvents: string[] = []; if (webhookEvents.length === 0) { @@ -214,7 +204,6 @@ export class InstanceController { let getWebsocketEvents: string[]; if (websocketEnabled) { - this.logger.verbose('creating websocket'); try { let newEvents: string[] = []; if (websocketEvents.length === 0) { @@ -254,7 +243,6 @@ export class InstanceController { const websocketEventsJson: JsonValue = (await this.websocketService.find(instance)).events; - // websocketEvents = (await this.websocketService.find(instance)).events; getWebsocketEvents = Array.isArray(websocketEventsJson) ? websocketEventsJson.map((event) => String(event)) : []; @@ -266,7 +254,6 @@ export class InstanceController { let getRabbitmqEvents: string[]; if (rabbitmqEnabled) { - this.logger.verbose('creating rabbitmq'); try { let newEvents: string[] = []; if (rabbitmqEvents.length === 0) { @@ -317,7 +304,6 @@ export class InstanceController { let getSqsEvents: string[]; if (sqsEnabled) { - this.logger.verbose('creating sqs'); try { let newEvents: string[] = []; if (sqsEvents.length === 0) { @@ -387,8 +373,6 @@ export class InstanceController { throw new BadRequestException('Invalid "url" property in typebotUrl'); } - this.logger.verbose('creating typebot'); - this.typebotService.create(instance, { enabled: true, url: typebotUrl, @@ -404,7 +388,6 @@ export class InstanceController { } } - this.logger.verbose('creating settings'); const settings: wa.LocalSettings = { rejectCall: rejectCall || false, msgCall: msgCall || '', @@ -415,8 +398,6 @@ export class InstanceController { syncFullHistory: syncFullHistory ?? false, }; - this.logger.verbose('settings: ' + JSON.stringify(settings)); - this.settingsService.create(instance, settings); let webhookWaBusiness = null, @@ -440,7 +421,6 @@ export class InstanceController { let getQrcode: wa.QrCode; if (qrcode) { - this.logger.verbose('creating qrcode'); await instance.connectToWhatsapp(number); await delay(5000); getQrcode = instance.qrCode; @@ -488,9 +468,6 @@ export class InstanceController { qrcode: getQrcode, }; - this.logger.verbose('instance created'); - this.logger.verbose(result); - return result; } @@ -612,13 +589,9 @@ export class InstanceController { public async connectToWhatsapp({ instanceName, number = null }: InstanceDto) { try { - this.logger.verbose('requested connectToWhatsapp from ' + instanceName + ' instance'); - const instance = this.waMonitor.waInstances[instanceName]; const state = instance?.connectionStatus?.state; - this.logger.verbose('state: ' + state); - if (!state) { throw new BadRequestException('The "' + instanceName + '" instance does not exist'); } @@ -632,7 +605,6 @@ export class InstanceController { } if (state == 'close') { - this.logger.verbose('connecting'); await instance.connectToWhatsapp(number); await delay(5000); @@ -653,14 +625,11 @@ export class InstanceController { public async restartInstance({ instanceName }: InstanceDto) { try { - this.logger.verbose('requested restartInstance from ' + instanceName + ' instance'); - const instance = this.waMonitor.waInstances[instanceName]; const state = instance?.connectionStatus?.state; switch (state) { case 'open': - this.logger.verbose('logging out instance: ' + instanceName); if (this.configService.get('CHATWOOT').ENABLED) instance.clearCacheChatwoot(); await instance.reloadConnection(); await delay(2000); @@ -675,7 +644,6 @@ export class InstanceController { } public async connectionState({ instanceName }: InstanceDto) { - this.logger.verbose('requested connectionState from ' + instanceName + ' instance'); return { instance: { instanceName: instanceName, @@ -709,24 +677,19 @@ export class InstanceController { } if (name) { - this.logger.verbose('requested fetchInstances from ' + name + ' instance'); - this.logger.verbose('instanceName: ' + name); return this.waMonitor.instanceInfo(name, arrayReturn); } else if (instanceId || number) { return this.waMonitor.instanceInfoById(instanceId, number); } - this.logger.verbose('requested fetchInstances (all instances)'); return this.waMonitor.instanceInfo(); } public async setPresence({ instanceName }: InstanceDto, data: SetPresenceDto) { - this.logger.verbose('requested sendPresence from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].setPresence(data); } public async logout({ instanceName }: InstanceDto) { - this.logger.verbose('requested logout from ' + instanceName + ' instance'); const { instance } = await this.connectionState({ instanceName }); if (instance.state === 'close') { @@ -743,7 +706,6 @@ export class InstanceController { } public async deleteInstance({ instanceName }: InstanceDto) { - this.logger.verbose('requested deleteInstance from ' + instanceName + ' instance'); const { instance } = await this.connectionState({ instanceName }); if (instance.state === 'open') { @@ -755,13 +717,9 @@ export class InstanceController { if (this.configService.get('CHATWOOT').ENABLED) waInstances?.clearCacheChatwoot(); if (instance.state === 'connecting') { - this.logger.verbose('logging out instance: ' + instanceName); - await this.logout({ instanceName }); } - this.logger.verbose('deleting instance: ' + instanceName); - try { waInstances?.sendDataWebhook(Events.INSTANCE_DELETE, { instanceName, diff --git a/src/api/controllers/label.controller.ts b/src/api/controllers/label.controller.ts index 6fd91d86..669af147 100644 --- a/src/api/controllers/label.controller.ts +++ b/src/api/controllers/label.controller.ts @@ -1,20 +1,15 @@ -import { Logger } from '../../config/logger.config'; import { InstanceDto } from '../dto/instance.dto'; import { HandleLabelDto } from '../dto/label.dto'; import { WAMonitoringService } from '../services/monitor.service'; -const logger = new Logger('LabelController'); - export class LabelController { constructor(private readonly waMonitor: WAMonitoringService) {} public async fetchLabels({ instanceName }: InstanceDto) { - logger.verbose('requested fetchLabels from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].fetchLabels(); } public async handleLabel({ instanceName }: InstanceDto, data: HandleLabelDto) { - logger.verbose('requested chat label change from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].handleLabel(data); } } diff --git a/src/api/controllers/proxy.controller.ts b/src/api/controllers/proxy.controller.ts index b4b01be5..9dbc4510 100644 --- a/src/api/controllers/proxy.controller.ts +++ b/src/api/controllers/proxy.controller.ts @@ -14,14 +14,11 @@ export class ProxyController { constructor(private readonly proxyService: ProxyService, private readonly waMonitor: WAMonitoringService) {} public async createProxy(instance: InstanceDto, data: ProxyDto) { - logger.verbose('requested createProxy from ' + instance.instanceName + ' instance'); - if (!this.waMonitor.waInstances[instance.instanceName]) { throw new NotFoundException(`The "${instance.instanceName}" instance does not exist`); } if (!data.enabled) { - logger.verbose('proxy disabled'); data.host = ''; data.port = ''; data.protocol = ''; @@ -34,15 +31,12 @@ export class ProxyController { if (!testProxy) { throw new BadRequestException('Invalid proxy'); } - logger.verbose('proxy enabled'); } return this.proxyService.create(instance, data); } public async findProxy(instance: InstanceDto) { - logger.verbose('requested findProxy from ' + instance.instanceName + ' instance'); - if (!this.waMonitor.waInstances[instance.instanceName]) { throw new NotFoundException(`The "${instance.instanceName}" instance does not exist`); } @@ -51,24 +45,20 @@ export class ProxyController { } public async testProxy(proxy: ProxyDto) { - logger.verbose('requested testProxy'); try { const serverIp = await axios.get('https://icanhazip.com/'); const response = await axios.get('https://icanhazip.com/', { httpsAgent: makeProxyAgent(proxy), }); - logger.verbose('[testProxy] from IP: ' + response?.data + ' To IP: ' + serverIp?.data); return response?.data !== serverIp?.data; } catch (error) { if (axios.isAxiosError(error) && error.response?.data) { logger.error('testProxy error: ' + error.response.data); } else if (axios.isAxiosError(error)) { logger.error('testProxy error: '); - logger.verbose(error.cause ?? error.message); } else { logger.error('testProxy error: '); - logger.verbose(error); } return false; } diff --git a/src/api/controllers/sendMessage.controller.ts b/src/api/controllers/sendMessage.controller.ts index d23ba345..52599724 100644 --- a/src/api/controllers/sendMessage.controller.ts +++ b/src/api/controllers/sendMessage.controller.ts @@ -1,6 +1,5 @@ import { isBase64, isURL } from 'class-validator'; -import { Logger } from '../../config/logger.config'; import { BadRequestException } from '../../exceptions'; import { InstanceDto } from '../dto/instance.dto'; import { @@ -19,24 +18,18 @@ import { } from '../dto/sendMessage.dto'; import { WAMonitoringService } from '../services/monitor.service'; -const logger = new Logger('MessageRouter'); - export class SendMessageController { constructor(private readonly waMonitor: WAMonitoringService) {} public async sendText({ instanceName }: InstanceDto, data: SendTextDto) { - logger.verbose('requested sendText from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].textMessage(data); } public async sendTemplate({ instanceName }: InstanceDto, data: SendTemplateDto) { - logger.verbose('requested sendList from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].templateMessage(data); } public async sendMedia({ instanceName }: InstanceDto, data: SendMediaDto) { - logger.verbose('requested sendMedia from ' + instanceName + ' instance'); - if ( isBase64(data?.mediaMessage?.media) && !data?.mediaMessage?.fileName && @@ -45,7 +38,6 @@ export class SendMessageController { throw new BadRequestException('For base64 the file name must be informed.'); } - logger.verbose('isURL: ' + isURL(data?.mediaMessage?.media) + ', isBase64: ' + isBase64(data?.mediaMessage?.media)); if (isURL(data?.mediaMessage?.media) || isBase64(data?.mediaMessage?.media)) { return await this.waMonitor.waInstances[instanceName].mediaMessage(data); } @@ -53,11 +45,6 @@ export class SendMessageController { } public async sendSticker({ instanceName }: InstanceDto, data: SendStickerDto) { - logger.verbose('requested sendSticker from ' + instanceName + ' instance'); - - logger.verbose( - 'isURL: ' + isURL(data?.stickerMessage?.image) + ', isBase64: ' + isBase64(data?.stickerMessage?.image), - ); if (isURL(data.stickerMessage.image) || isBase64(data.stickerMessage.image)) { return await this.waMonitor.waInstances[instanceName].mediaSticker(data); } @@ -65,9 +52,6 @@ export class SendMessageController { } public async sendWhatsAppAudio({ instanceName }: InstanceDto, data: SendAudioDto) { - logger.verbose('requested sendWhatsAppAudio from ' + instanceName + ' instance'); - - logger.verbose('isURL: ' + isURL(data?.audioMessage?.audio) + ', isBase64: ' + isBase64(data?.audioMessage?.audio)); if (isURL(data.audioMessage.audio) || isBase64(data.audioMessage.audio)) { return await this.waMonitor.waInstances[instanceName].audioWhatsapp(data); } @@ -75,7 +59,6 @@ export class SendMessageController { } public async sendButtons({ instanceName }: InstanceDto, data: SendButtonDto) { - logger.verbose('requested sendButtons from ' + instanceName + ' instance'); if (isBase64(data.buttonMessage.mediaMessage?.media) && !data.buttonMessage.mediaMessage?.fileName) { throw new BadRequestException('For bse64 the file name must be informed.'); } @@ -83,22 +66,18 @@ export class SendMessageController { } public async sendLocation({ instanceName }: InstanceDto, data: SendLocationDto) { - logger.verbose('requested sendLocation from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].locationMessage(data); } public async sendList({ instanceName }: InstanceDto, data: SendListDto) { - logger.verbose('requested sendList from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].listMessage(data); } public async sendContact({ instanceName }: InstanceDto, data: SendContactDto) { - logger.verbose('requested sendContact from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].contactMessage(data); } public async sendReaction({ instanceName }: InstanceDto, data: SendReactionDto) { - logger.verbose('requested sendReaction from ' + instanceName + ' instance'); if (!data.reactionMessage.reaction.match(/[^()\w\sà-ú"-+]+/)) { throw new BadRequestException('"reaction" must be an emoji'); } @@ -106,12 +85,10 @@ export class SendMessageController { } public async sendPoll({ instanceName }: InstanceDto, data: SendPollDto) { - logger.verbose('requested sendPoll from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].pollMessage(data); } public async sendStatus({ instanceName }: InstanceDto, data: SendStatusDto) { - logger.verbose('requested sendStatus from ' + instanceName + ' instance'); return await this.waMonitor.waInstances[instanceName].statusMessage(data); } } diff --git a/src/api/controllers/settings.controller.ts b/src/api/controllers/settings.controller.ts index 15563647..5e0e6aae 100644 --- a/src/api/controllers/settings.controller.ts +++ b/src/api/controllers/settings.controller.ts @@ -1,21 +1,15 @@ -import { Logger } from '../../config/logger.config'; import { InstanceDto } from '../dto/instance.dto'; import { SettingsDto } from '../dto/settings.dto'; import { SettingsService } from '../services/settings.service'; -const logger = new Logger('SettingsController'); - export class SettingsController { constructor(private readonly settingsService: SettingsService) {} public async createSettings(instance: InstanceDto, data: SettingsDto) { - logger.verbose('requested createSettings from ' + instance.instanceName + ' instance'); - return this.settingsService.create(instance, data); } public async findSettings(instance: InstanceDto) { - logger.verbose('requested findSettings from ' + instance.instanceName + ' instance'); const settings = this.settingsService.find(instance); return settings; } diff --git a/src/api/controllers/webhook.controller.ts b/src/api/controllers/webhook.controller.ts index 6285cb6c..721c3ec7 100644 --- a/src/api/controllers/webhook.controller.ts +++ b/src/api/controllers/webhook.controller.ts @@ -1,20 +1,15 @@ import { isURL } from 'class-validator'; -import { Logger } from '../../config/logger.config'; import { BadRequestException } from '../../exceptions'; import { InstanceDto } from '../dto/instance.dto'; import { WebhookDto } from '../dto/webhook.dto'; import { WAMonitoringService } from '../services/monitor.service'; import { WebhookService } from '../services/webhook.service'; -const logger = new Logger('WebhookController'); - export class WebhookController { constructor(private readonly webhookService: WebhookService, private readonly waMonitor: WAMonitoringService) {} public async createWebhook(instance: InstanceDto, data: WebhookDto) { - logger.verbose('requested createWebhook from ' + instance.instanceName + ' instance'); - if (!isURL(data.url, { require_tld: false })) { throw new BadRequestException('Invalid "url" property'); } @@ -22,11 +17,9 @@ export class WebhookController { data.enabled = data.enabled ?? true; if (!data.enabled) { - logger.verbose('webhook disabled'); data.url = ''; data.events = []; } else if (data.events.length === 0) { - logger.verbose('webhook events empty'); data.events = [ 'APPLICATION_STARTUP', 'QRCODE_UPDATED', @@ -59,12 +52,10 @@ export class WebhookController { } public async findWebhook(instance: InstanceDto) { - logger.verbose('requested findWebhook from ' + instance.instanceName + ' instance'); return this.webhookService.find(instance); } public async receiveWebhook(instance: InstanceDto, data: any) { - logger.verbose('requested receiveWebhook from ' + instance.instanceName + ' instance'); return await this.waMonitor.waInstances[instance.instanceName].connectToWhatsapp(data); } } diff --git a/src/api/integrations/chatwoot/controllers/chatwoot.controller.ts b/src/api/integrations/chatwoot/controllers/chatwoot.controller.ts index f7235c25..87cd6bda 100644 --- a/src/api/integrations/chatwoot/controllers/chatwoot.controller.ts +++ b/src/api/integrations/chatwoot/controllers/chatwoot.controller.ts @@ -2,7 +2,6 @@ import { isURL } from 'class-validator'; import { CacheEngine } from '../../../../cache/cacheengine'; import { Chatwoot, ConfigService, HttpServer } from '../../../../config/env.config'; -import { Logger } from '../../../../config/logger.config'; import { BadRequestException } from '../../../../exceptions'; import { InstanceDto } from '../../../dto/instance.dto'; import { PrismaRepository } from '../../../repository/repository.service'; @@ -11,8 +10,6 @@ import { CacheService } from '../../../services/cache.service'; import { ChatwootDto } from '../dto/chatwoot.dto'; import { ChatwootService } from '../services/chatwoot.service'; -const logger = new Logger('ChatwootController'); - export class ChatwootController { constructor( private readonly chatwootService: ChatwootService, @@ -23,8 +20,6 @@ export class ChatwootController { public async createChatwoot(instance: InstanceDto, data: ChatwootDto) { if (!this.configService.get('CHATWOOT').ENABLED) throw new BadRequestException('Chatwoot is disabled'); - logger.verbose('requested createChatwoot from ' + instance.instanceName + ' instance'); - if (data.enabled) { if (!isURL(data.url, { require_tld: false })) { throw new BadRequestException('url is not valid'); @@ -45,7 +40,6 @@ export class ChatwootController { } if (!data.enabled) { - logger.verbose('chatwoot disabled'); data.accountId = ''; data.token = ''; data.url = ''; @@ -80,7 +74,6 @@ export class ChatwootController { public async findChatwoot(instance: InstanceDto) { if (!this.configService.get('CHATWOOT').ENABLED) throw new BadRequestException('Chatwoot is disabled'); - logger.verbose('requested findChatwoot from ' + instance.instanceName + ' instance'); const result = await this.chatwootService.find(instance); const urlServer = this.configService.get('SERVER').URL; @@ -108,8 +101,6 @@ export class ChatwootController { public async receiveWebhook(instance: InstanceDto, data: any) { if (!this.configService.get('CHATWOOT').ENABLED) throw new BadRequestException('Chatwoot is disabled'); - logger.verbose('requested receiveWebhook from ' + instance.instanceName + ' instance'); - const chatwootCache = new CacheService(new CacheEngine(this.configService, ChatwootService.name).getEngine()); const chatwootService = new ChatwootService(waMonitor, this.configService, this.prismaRepository, chatwootCache); diff --git a/src/api/integrations/chatwoot/libs/postgres.client.ts b/src/api/integrations/chatwoot/libs/postgres.client.ts index 1211b075..20e6515f 100644 --- a/src/api/integrations/chatwoot/libs/postgres.client.ts +++ b/src/api/integrations/chatwoot/libs/postgres.client.ts @@ -27,7 +27,6 @@ class Postgres { }); try { - this.logger.verbose('connecting new postgres'); this.connected = true; } catch (e) { this.connected = false; diff --git a/src/api/integrations/chatwoot/routes/chatwoot.router.ts b/src/api/integrations/chatwoot/routes/chatwoot.router.ts index cc227163..24799a06 100644 --- a/src/api/integrations/chatwoot/routes/chatwoot.router.ts +++ b/src/api/integrations/chatwoot/routes/chatwoot.router.ts @@ -1,6 +1,5 @@ import { RequestHandler, Router } from 'express'; -import { Logger } from '../../../../config/logger.config'; import { chatwootSchema, instanceNameSchema } from '../../../../validate/validate.schema'; import { RouterBroker } from '../../../abstract/abstract.router'; import { InstanceDto } from '../../../dto/instance.dto'; @@ -8,19 +7,11 @@ import { HttpStatus } from '../../../routes/index.router'; import { chatwootController } from '../../../server.module'; import { ChatwootDto } from '../dto/chatwoot.dto'; -const logger = new Logger('ChatwootRouter'); - export class ChatwootRouter extends RouterBroker { constructor(...guards: RequestHandler[]) { super(); this.router .post(this.routerPath('set'), ...guards, async (req, res) => { - logger.verbose('request received in setChatwoot'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: chatwootSchema, @@ -31,12 +22,6 @@ export class ChatwootRouter extends RouterBroker { res.status(HttpStatus.CREATED).json(response); }) .get(this.routerPath('find'), ...guards, async (req, res) => { - logger.verbose('request received in findChatwoot'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: instanceNameSchema, @@ -47,12 +32,6 @@ export class ChatwootRouter extends RouterBroker { res.status(HttpStatus.OK).json(response); }) .post(this.routerPath('webhook'), async (req, res) => { - logger.verbose('request received in findChatwoot'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: instanceNameSchema, diff --git a/src/api/integrations/chatwoot/services/chatwoot.service.ts b/src/api/integrations/chatwoot/services/chatwoot.service.ts index 16076f33..1a3358c1 100644 --- a/src/api/integrations/chatwoot/services/chatwoot.service.ts +++ b/src/api/integrations/chatwoot/services/chatwoot.service.ts @@ -55,7 +55,6 @@ export class ChatwootService { return (await this.cache.get(cacheKey)) as ChatwootModel; } - this.logger.verbose('get provider to instance: ' + instance.instanceName); const provider = await this.waMonitor.waInstances[instance.instanceName]?.findChatwoot(); if (!provider) { @@ -63,16 +62,12 @@ export class ChatwootService { return null; } - this.logger.verbose('provider found'); - this.cache.set(cacheKey, provider); return provider; } private async clientCw(instance: InstanceDto) { - this.logger.verbose('get client to instance: ' + instance.instanceName); - const provider = await this.getProvider(instance); if (!provider) { @@ -80,17 +75,12 @@ export class ChatwootService { return null; } - this.logger.verbose('provider found'); - this.provider = provider; - this.logger.verbose('create client to instance: ' + instance.instanceName); const client = new ChatwootClient({ config: this.getClientCwConfig(), }); - this.logger.verbose('client created'); - return client; } @@ -110,12 +100,8 @@ export class ChatwootService { } public async create(instance: InstanceDto, data: ChatwootDto) { - this.logger.verbose('create chatwoot: ' + instance.instanceName); - await this.waMonitor.waInstances[instance.instanceName].setChatwoot(data); - this.logger.verbose('chatwoot created'); - if (data.autoCreate) { const urlServer = this.configService.get('SERVER').URL; @@ -131,7 +117,6 @@ export class ChatwootService { } public async find(instance: InstanceDto): Promise { - this.logger.verbose('find chatwoot: ' + instance.instanceName); try { return await this.waMonitor.waInstances[instance.instanceName].findChatwoot(); } catch (error) { @@ -141,7 +126,6 @@ export class ChatwootService { } public async getContact(instance: InstanceDto, id: number) { - this.logger.verbose('get contact to instance: ' + instance.instanceName); const client = await this.clientCw(instance); if (!client) { @@ -154,7 +138,6 @@ export class ChatwootService { return null; } - this.logger.verbose('find contact in chatwoot'); const contact = await client.contact.getContactable({ accountId: this.provider.account_id, id, @@ -165,7 +148,6 @@ export class ChatwootService { return null; } - this.logger.verbose('contact found'); return contact; } @@ -176,8 +158,6 @@ export class ChatwootService { qrcode: boolean, number: string, ) { - this.logger.verbose('init instance chatwoot: ' + instance.instanceName); - const client = await this.clientCw(instance); if (!client) { @@ -185,18 +165,15 @@ export class ChatwootService { return null; } - this.logger.verbose('find inbox in chatwoot'); const findInbox: any = await client.inboxes.list({ accountId: this.provider.account_id, }); - this.logger.verbose('check duplicate inbox'); const checkDuplicate = findInbox.payload.map((inbox) => inbox.name).includes(inboxName); let inboxId: number; if (!checkDuplicate) { - this.logger.verbose('create inbox in chatwoot'); const data = { type: 'api', webhook_url: webhookUrl, @@ -217,7 +194,6 @@ export class ChatwootService { inboxId = inbox.id; } else { - this.logger.verbose('find inbox in chatwoot'); const inbox = findInbox.payload.find((inbox) => inbox.name === inboxName); if (!inbox) { @@ -228,7 +204,6 @@ export class ChatwootService { inboxId = inbox.id; } - this.logger.verbose('find contact in chatwoot and create if not exists'); const contact = (await this.findContact(instance, '123456')) || ((await this.createContact( @@ -248,7 +223,6 @@ export class ChatwootService { const contactId = contact.id || contact.payload.contact.id; if (qrcode) { - this.logger.verbose('create conversation in chatwoot'); const data = { contact_id: contactId.toString(), inbox_id: inboxId.toString(), @@ -264,8 +238,6 @@ export class ChatwootService { return null; } - this.logger.verbose('create message for init instance in chatwoot'); - let contentMsg = 'init'; if (number) { @@ -287,7 +259,6 @@ export class ChatwootService { } } - this.logger.verbose('instance chatwoot initialized'); return true; } @@ -300,8 +271,6 @@ export class ChatwootService { avatar_url?: string, jid?: string, ) { - this.logger.verbose('create contact to instance: ' + instance.instanceName); - const client = await this.clientCw(instance); if (!client) { @@ -311,7 +280,6 @@ export class ChatwootService { let data: any = {}; if (!isGroup) { - this.logger.verbose('create contact in chatwoot'); data = { inbox_id: inboxId, name: name || phoneNumber, @@ -320,7 +288,6 @@ export class ChatwootService { avatar_url: avatar_url, }; } else { - this.logger.verbose('create contact group in chatwoot'); data = { inbox_id: inboxId, name: name || phoneNumber, @@ -329,7 +296,6 @@ export class ChatwootService { }; } - this.logger.verbose('create contact in chatwoot'); const contact = await client.contacts.create({ accountId: this.provider.account_id, data, @@ -340,12 +306,10 @@ export class ChatwootService { return null; } - this.logger.verbose('contact created'); return contact; } public async updateContact(instance: InstanceDto, id: number, data: any) { - this.logger.verbose('update contact to instance: ' + instance.instanceName); const client = await this.clientCw(instance); if (!client) { @@ -358,7 +322,6 @@ export class ChatwootService { return null; } - this.logger.verbose('update contact in chatwoot'); try { const contact = await client.contacts.update({ accountId: this.provider.account_id, @@ -366,7 +329,6 @@ export class ChatwootService { data, }); - this.logger.verbose('contact updated'); return contact; } catch (error) { this.logger.error(error); @@ -374,8 +336,6 @@ export class ChatwootService { } public async findContact(instance: InstanceDto, phoneNumber: string) { - this.logger.verbose('find contact to instance: ' + instance.instanceName); - const client = await this.clientCw(instance); if (!client) { @@ -387,14 +347,11 @@ export class ChatwootService { const isGroup = phoneNumber.includes('@g.us'); if (!isGroup) { - this.logger.verbose('format phone number'); query = `+${phoneNumber}`; } else { - this.logger.verbose('format group id'); query = phoneNumber; } - this.logger.verbose('find contact in chatwoot'); let contact: any; if (isGroup) { @@ -419,18 +376,14 @@ export class ChatwootService { } if (!isGroup) { - this.logger.verbose('return contact'); return contact.payload.length > 1 ? this.findContactInContactList(contact.payload, query) : contact.payload[0]; } else { - this.logger.verbose('return group'); return contact.payload.find((contact) => contact.identifier === query); } } private async mergeBrazilianContacts(contacts: any[]) { try { - //sdk chatwoot não tem função merge - this.logger.verbose('merging contacts'); const contact = await chatwootRequest(this.getClientCwConfig(), { method: 'POST', url: `/api/v1/accounts/${this.provider.account_id}/actions/contact_merge`, @@ -521,7 +474,6 @@ export class ChatwootService { } public async createConversation(instance: InstanceDto, body: any) { - this.logger.verbose('create conversation to instance: ' + instance.instanceName); try { const client = await this.clientCw(instance); @@ -552,17 +504,12 @@ export class ChatwootService { const isGroup = body.key.remoteJid.includes('@g.us'); - this.logger.verbose('is group: ' + isGroup); - const chatId = isGroup ? body.key.remoteJid : body.key.remoteJid.split('@')[0]; - this.logger.verbose('chat id: ' + chatId); - let nameContact: string; nameContact = !body.key.fromMe ? body.pushName : chatId; - this.logger.verbose('get inbox to instance: ' + instance.instanceName); const filterInbox = await this.getInbox(instance); if (!filterInbox) { @@ -571,13 +518,10 @@ export class ChatwootService { } if (isGroup) { - this.logger.verbose('get group name'); const group = await this.waMonitor.waInstances[instance.instanceName].client.groupMetadata(chatId); nameContact = `${group.subject} (GROUP)`; - this.logger.verbose('find or create participant in chatwoot'); - const picture_url = await this.waMonitor.waInstances[instance.instanceName].profilePicture( body.key.participant.split('@')[0], ); @@ -604,8 +548,6 @@ export class ChatwootService { } } - this.logger.verbose('find or create contact in chatwoot'); - const picture_url = await this.waMonitor.waInstances[instance.instanceName].profilePicture(chatId); let contact = await this.findContact(instance, chatId); @@ -627,7 +569,6 @@ export class ChatwootService { const contactNeedsUpdate = pictureNeedsUpdate || nameNeedsUpdate; if (contactNeedsUpdate) { - this.logger.verbose('update contact in chatwoot'); contact = await this.updateContact(instance, contact.id, { ...(nameNeedsUpdate && { name: nameContact }), ...(waProfilePictureFile === '' && { avatar: null }), @@ -655,7 +596,6 @@ export class ChatwootService { const contactId = contact?.payload?.id || contact?.payload?.contact?.id || contact?.id; - this.logger.verbose('get contact conversations in chatwoot'); const contactConversations = (await client.contacts.listConversations({ accountId: this.provider.account_id, id: contactId, @@ -680,16 +620,13 @@ export class ChatwootService { (conversation) => conversation.status !== 'resolved' && conversation.inbox_id == filterInbox.id, ); } - this.logger.verbose('return conversation if exists'); if (conversation) { - this.logger.verbose('conversation found'); this.cache.set(cacheKey, conversation.id); return conversation.id; } } - this.logger.verbose('create conversation in chatwoot'); const data = { contact_id: contactId.toString(), inbox_id: filterInbox.id.toString(), @@ -709,7 +646,6 @@ export class ChatwootService { return null; } - this.logger.verbose('conversation created'); this.cache.set(cacheKey, conversation.id); return conversation.id; } catch (error) { @@ -718,8 +654,6 @@ export class ChatwootService { } public async getInbox(instance: InstanceDto) { - this.logger.verbose('get inbox to instance: ' + instance.instanceName); - const cacheKey = `${instance.instanceName}:getInbox`; if (await this.cache.has(cacheKey)) { return (await this.cache.get(cacheKey)) as inbox; @@ -732,7 +666,6 @@ export class ChatwootService { return null; } - this.logger.verbose('find inboxes in chatwoot'); const inbox = (await client.inboxes.list({ accountId: this.provider.account_id, })) as any; @@ -742,7 +675,6 @@ export class ChatwootService { return null; } - this.logger.verbose('find inbox by name'); const findByName = inbox.payload.find((inbox) => inbox.name === this.getClientCwConfig().name_inbox); if (!findByName) { @@ -750,7 +682,6 @@ export class ChatwootService { return null; } - this.logger.verbose('return inbox'); this.cache.set(cacheKey, findByName); return findByName; } @@ -769,8 +700,6 @@ export class ChatwootService { messageBody?: any, sourceId?: string, ) { - this.logger.verbose('create message to instance: ' + instance.instanceName); - const client = await this.clientCw(instance); if (!client) { @@ -780,7 +709,6 @@ export class ChatwootService { const replyToIds = await this.getReplyToIds(messageBody, instance); - this.logger.verbose('create message in chatwoot'); const message = await client.messages.create({ accountId: this.provider.account_id, conversationId: conversationId, @@ -801,8 +729,6 @@ export class ChatwootService { return null; } - this.logger.verbose('message created'); - return message; } @@ -811,8 +737,6 @@ export class ChatwootService { inbox: inbox, contact: generic_id & contact, ): Promise { - this.logger.verbose('find conversation in chatwoot'); - const client = await this.clientCw(instance); if (!client) { @@ -842,8 +766,6 @@ export class ChatwootService { filename: string; }[], ) { - this.logger.verbose('create bot message to instance: ' + instance.instanceName); - const client = await this.clientCw(instance); if (!client) { @@ -851,7 +773,6 @@ export class ChatwootService { return null; } - this.logger.verbose('find contact in chatwoot'); const contact = await this.findContact(instance, '123456'); if (!contact) { @@ -859,7 +780,6 @@ export class ChatwootService { return null; } - this.logger.verbose('get inbox to instance: ' + instance.instanceName); const filterInbox = await this.getInbox(instance); if (!filterInbox) { @@ -874,7 +794,6 @@ export class ChatwootService { return; } - this.logger.verbose('create message in chatwoot'); const message = await client.messages.create({ accountId: this.provider.account_id, conversationId: conversation.id, @@ -890,8 +809,6 @@ export class ChatwootService { return null; } - this.logger.verbose('bot message created'); - return message; } @@ -904,19 +821,14 @@ export class ChatwootService { messageBody?: any, sourceId?: string, ) { - this.logger.verbose('send data to chatwoot'); - const data = new FormData(); if (content) { - this.logger.verbose('content found'); data.append('content', content); } - this.logger.verbose('message type: ' + messageType); data.append('message_type', messageType); - this.logger.verbose('temp file found'); data.append('attachments[]', createReadStream(file)); if (messageBody && instance) { @@ -933,7 +845,6 @@ export class ChatwootService { data.append('source_id', sourceId); } - this.logger.verbose('get client to instance: ' + this.provider.instanceName); const config = { method: 'post', maxBodyLength: Infinity, @@ -945,14 +856,11 @@ export class ChatwootService { data: data, }; - this.logger.verbose('send data to chatwoot'); try { const { data } = await axios.request(config); - this.logger.verbose('remove temp file'); unlinkSync(file); - this.logger.verbose('data sent'); return data; } catch (error) { this.logger.error(error); @@ -966,7 +874,6 @@ export class ChatwootService { messageType: 'incoming' | 'outgoing' | undefined, file?: string, ) { - this.logger.verbose('create bot qr to instance: ' + instance.instanceName); const client = await this.clientCw(instance); if (!client) { @@ -974,7 +881,6 @@ export class ChatwootService { return null; } - this.logger.verbose('find contact in chatwoot'); const contact = await this.findContact(instance, '123456'); if (!contact) { @@ -982,7 +888,6 @@ export class ChatwootService { return null; } - this.logger.verbose('get inbox to instance: ' + instance.instanceName); const filterInbox = await this.getInbox(instance); if (!filterInbox) { @@ -997,23 +902,18 @@ export class ChatwootService { return; } - this.logger.verbose('send data to chatwoot'); const data = new FormData(); if (content) { - this.logger.verbose('content found'); data.append('content', content); } - this.logger.verbose('message type: ' + messageType); data.append('message_type', messageType); if (file) { - this.logger.verbose('temp file found'); data.append('attachments[]', createReadStream(file)); } - this.logger.verbose('get client to instance: ' + this.provider.instanceName); const config = { method: 'post', maxBodyLength: Infinity, @@ -1025,14 +925,11 @@ export class ChatwootService { data: data, }; - this.logger.verbose('send data to chatwoot'); try { const { data } = await axios.request(config); - this.logger.verbose('remove temp file'); unlinkSync(file); - this.logger.verbose('data sent'); return data; } catch (error) { this.logger.error(error); @@ -1040,10 +937,7 @@ export class ChatwootService { } public async sendAttachment(waInstance: any, number: string, media: any, caption?: string, options?: Options) { - this.logger.verbose('send attachment to instance: ' + waInstance.instanceName); - try { - this.logger.verbose('get media type'); const parsedMedia = path.parse(decodeURIComponent(media)); let mimeType = mimeTypes.lookup(parsedMedia?.ext) || ''; let fileName = parsedMedia?.name + parsedMedia?.ext; @@ -1051,13 +945,11 @@ export class ChatwootService { if (!mimeType) { const parts = media.split('/'); fileName = decodeURIComponent(parts[parts.length - 1]); - this.logger.verbose('file name: ' + fileName); const response = await axios.get(media, { responseType: 'arraybuffer', }); mimeType = response.headers['content-type']; - this.logger.verbose('mime type: ' + mimeType); } let type = 'document'; @@ -1077,10 +969,7 @@ export class ChatwootService { break; } - this.logger.verbose('type: ' + type); - if (type === 'audio') { - this.logger.verbose('send audio to instance: ' + waInstance.instanceName); const data: SendAudioDto = { number: number, audioMessage: { @@ -1095,7 +984,6 @@ export class ChatwootService { const messageSent = await waInstance?.audioWhatsapp(data, true); - this.logger.verbose('audio sent'); return messageSent; } @@ -1103,7 +991,6 @@ export class ChatwootService { type = 'document'; } - this.logger.verbose('send media to instance: ' + waInstance.instanceName); const data: SendMediaDto = { number: number, mediaMessage: { @@ -1119,13 +1006,11 @@ export class ChatwootService { }; if (caption) { - this.logger.verbose('caption found'); data.mediaMessage.caption = caption; } const messageSent = await waInstance?.mediaMessage(data, true); - this.logger.verbose('media sent'); return messageSent; } catch (error) { this.logger.error(error); @@ -1156,7 +1041,6 @@ export class ChatwootService { try { await new Promise((resolve) => setTimeout(resolve, 500)); - this.logger.verbose('receive webhook to chatwoot instance: ' + instance.instanceName); const client = await this.clientCw(instance); if (!client) { @@ -1175,7 +1059,6 @@ export class ChatwootService { this.cache.delete(keyToDelete); } - this.logger.verbose('check if is bot'); if ( !body?.conversation || body.private || @@ -1184,7 +1067,6 @@ export class ChatwootService { return { message: 'bot' }; } - this.logger.verbose('check if is group'); const chatId = body.conversation.meta.sender?.phone_number?.replace('+', '') || body.conversation.meta.sender?.identifier; // Chatwoot to Whatsapp @@ -1199,7 +1081,6 @@ export class ChatwootService { const senderName = body?.conversation?.messages[0]?.sender?.available_name || body?.sender?.name; const waInstance = this.waMonitor.waInstances[instance.instanceName]; - this.logger.verbose('check if is a message deletion'); if (body.event === 'message_updated' && body.content_attributes?.deleted) { const message = await this.prismaRepository.message.findFirst({ where: { @@ -1209,10 +1090,8 @@ export class ChatwootService { }); if (message) { - this.logger.verbose('deleting message in whatsapp. Message id: ' + message[0].key.id); await waInstance?.client.sendMessage(message[0].key.remoteJid, { delete: message[0].key }); - this.logger.verbose('deleting message in repository. Message id: ' + message[0].key.id); this.prismaRepository.message.deleteMany({ where: { instanceId: instance.instanceId, @@ -1224,23 +1103,15 @@ export class ChatwootService { } if (chatId === '123456' && body.message_type === 'outgoing') { - this.logger.verbose('check if is command'); - const command = messageReceived.replace('/', ''); if (command.includes('init') || command.includes('iniciar')) { - this.logger.verbose('command init found'); const state = waInstance?.connectionStatus?.state; if (state !== 'open') { - if (state === 'close') { - this.logger.verbose('request cleaning up instance: ' + instance.instanceName); - } - this.logger.verbose('connect to whatsapp'); const number = command.split(':')[1]; await waInstance.connectToWhatsapp(number); } else { - this.logger.verbose('whatsapp already connected'); await this.createBotMessage( instance, i18next.t('cw.inbox.alreadyConnected', { @@ -1252,7 +1123,6 @@ export class ChatwootService { } if (command === 'clearcache') { - this.logger.verbose('command clearcache found'); waInstance.clearCacheChatwoot(); await this.createBotMessage( instance, @@ -1264,12 +1134,9 @@ export class ChatwootService { } if (command === 'status') { - this.logger.verbose('command status found'); - const state = waInstance?.connectionStatus?.state; if (!state) { - this.logger.verbose('state not found'); await this.createBotMessage( instance, i18next.t('cw.inbox.notFound', { @@ -1280,7 +1147,6 @@ export class ChatwootService { } if (state) { - this.logger.verbose('state: ' + state + ' found'); await this.createBotMessage( instance, i18next.t('cw.inbox.status', { @@ -1293,26 +1159,19 @@ export class ChatwootService { } if (command === 'disconnect' || command === 'desconectar') { - this.logger.verbose('command disconnect found'); - const msgLogout = i18next.t('cw.inbox.disconnect', { inboxName: body.inbox.name, }); - this.logger.verbose('send message to chatwoot'); await this.createBotMessage(instance, msgLogout, 'incoming'); - this.logger.verbose('disconnect to whatsapp'); await waInstance?.client?.logout('Log out instance: ' + instance.instanceName); await waInstance?.client?.ws?.close(); } } if (body.message_type === 'outgoing' && body?.conversation?.messages?.length && chatId !== '123456') { - this.logger.verbose('check if is group'); - if (body?.conversation?.messages[0]?.source_id?.substring(0, 5) === 'WAID:') { - this.logger.verbose('message sent directly from whatsapp. Webhook ignored.'); return { message: 'bot' }; } @@ -1321,7 +1180,6 @@ export class ChatwootService { return { message: 'bot' }; } - this.logger.verbose('Format message to send'); let formatText: string; if (senderName === null || senderName === undefined) { formatText = messageReceived; @@ -1336,13 +1194,9 @@ export class ChatwootService { } for (const message of body.conversation.messages) { - this.logger.verbose('check if message is media'); if (message.attachments && message.attachments.length > 0) { - this.logger.verbose('message is media'); for (const attachment of message.attachments) { - this.logger.verbose('send media to whatsapp'); if (!messageReceived) { - this.logger.verbose('message do not have text'); formatText = null; } @@ -1376,9 +1230,6 @@ export class ChatwootService { ); } } else { - this.logger.verbose('message is text'); - - this.logger.verbose('send text to whatsapp'); const data: SendTextDto = { number: chatId, textMessage: { @@ -1497,8 +1348,6 @@ export class ChatwootService { } if (body.message_type === 'template' && body.event === 'message_created') { - this.logger.verbose('check if is template'); - const data: SendTextDto = { number: chatId, textMessage: { @@ -1510,8 +1359,6 @@ export class ChatwootService { }, }; - this.logger.verbose('send text to whatsapp'); - await waInstance?.textMessage(data); } @@ -1618,7 +1465,6 @@ export class ChatwootService { } private isMediaMessage(message: any) { - this.logger.verbose('check if is media message'); const media = [ 'imageMessage', 'documentMessage', @@ -1632,7 +1478,6 @@ export class ChatwootService { const result = messageKeys.some((key) => media.includes(key)); - this.logger.verbose('is media message: ' + result); return result; } @@ -1645,8 +1490,6 @@ export class ChatwootService { } const adsMessage: AdsMessage | undefined = msg.extendedTextMessage?.contextInfo?.externalAdReply; - this.logger.verbose('Get ads message if it exist'); - adsMessage && this.logger.verbose('Ads message: ' + adsMessage); return adsMessage; } @@ -1662,14 +1505,10 @@ export class ChatwootService { } const reactionMessage: ReactionMessage | undefined = msg?.reactionMessage; - this.logger.verbose('Get reaction message if it exists'); - reactionMessage && this.logger.verbose('Reaction message: ' + reactionMessage); return reactionMessage; } private getTypeMessage(msg: any) { - this.logger.verbose('get type message'); - const types = { conversation: msg.conversation, imageMessage: msg.imageMessage?.caption, @@ -1688,13 +1527,10 @@ export class ChatwootService { listResponseMessage: msg.listResponseMessage, }; - this.logger.verbose('type message: ' + types); - return types; } private getMessageContent(types: any) { - this.logger.verbose('get message content'); const typeKey = Object.keys(types).find((key) => types[key] !== undefined); const result = typeKey ? types[typeKey] : undefined; @@ -1715,8 +1551,6 @@ export class ChatwootService { `_${i18next.t('cw.locationMessage.locationUrl')}:_ ` + `https://www.google.com/maps/search/?api=1&query=${latitude},${longitude}`; - this.logger.verbose('message content: ' + formattedLocation); - return formattedLocation; } @@ -1748,7 +1582,6 @@ export class ChatwootService { } }); - this.logger.verbose('message content: ' + formattedContact); return formattedContact; } @@ -1786,8 +1619,6 @@ export class ChatwootService { const formattedContactsArray = formattedContacts.join('\n\n'); - this.logger.verbose('formatted contacts: ' + formattedContactsArray); - return formattedContactsArray; } @@ -1847,25 +1678,18 @@ export class ChatwootService { return formattedResponseList; } - this.logger.verbose('message content: ' + result); - return result; } public getConversationMessage(msg: any) { - this.logger.verbose('get conversation message'); - const types = this.getTypeMessage(msg); const messageContent = this.getMessageContent(types); - this.logger.verbose('conversation message: ' + messageContent); - return messageContent; } public async eventWhatsapp(event: string, instance: InstanceDto, body: any) { - this.logger.verbose('event whatsapp to instance: ' + instance.instanceName); try { const waInstance = this.waMonitor.waInstances[instance.instanceName]; @@ -1903,10 +1727,7 @@ export class ChatwootService { } if (event === 'messages.upsert' || event === 'send.message') { - this.logger.verbose('event messages.upsert'); - if (body.key.remoteJid === 'status@broadcast') { - this.logger.verbose('status broadcast found'); return; } @@ -1917,8 +1738,6 @@ export class ChatwootService { }; } - this.logger.verbose('get conversation message'); - // Whatsapp to Chatwoot const originalMessage = await this.getConversationMessage(body.message); const bodyMessage = originalMessage @@ -1928,10 +1747,7 @@ export class ChatwootService { .replaceAll(/~((?!\s)([^\n~]+?)(? { await img.cover(320, 180).writeAsync(fileName); @@ -2113,7 +1900,6 @@ export class ChatwootService { const title = truncStr(adsMessage.title, 40); const description = truncStr(adsMessage.body, 75); - this.logger.verbose('send data to chatwoot'); const send = await this.sendData( getConversation, fileName, @@ -2132,22 +1918,17 @@ export class ChatwootService { return send; } - this.logger.verbose('check if is group'); if (body.key.remoteJid.includes('@g.us')) { - this.logger.verbose('message is group'); const participantName = body.pushName; let content: string; if (!body.key.fromMe) { - this.logger.verbose('message is not from me'); content = `**${participantName}**\n\n${bodyMessage}`; } else { - this.logger.verbose('message is from me'); content = `${bodyMessage}`; } - this.logger.verbose('send data to chatwoot'); const send = await this.createMessage( instance, getConversation, @@ -2166,9 +1947,6 @@ export class ChatwootService { return send; } else { - this.logger.verbose('message is not group'); - - this.logger.verbose('send data to chatwoot'); const send = await this.createMessage( instance, getConversation, @@ -2192,8 +1970,6 @@ export class ChatwootService { if (event === Events.MESSAGES_DELETE) { const chatwootDelete = this.configService.get('CHATWOOT').MESSAGE_DELETE; if (chatwootDelete === true) { - this.logger.verbose('deleting message from instance: ' + instance.instanceName); - if (!body?.key?.id) { this.logger.warn('message id not found'); return; @@ -2201,7 +1977,6 @@ export class ChatwootService { const message = await this.getMessageByKeyId(instance, body.key.id); if (message?.chatwootMessageId && message?.chatwootConversationId) { - this.logger.verbose('deleting message in repository. Message id: ' + body.key.id); this.prismaRepository.message.deleteMany({ where: { key: { @@ -2212,7 +1987,6 @@ export class ChatwootService { }, }); - this.logger.verbose('deleting message in chatwoot. Message id: ' + body.key.id); return await client.messages.delete({ accountId: this.provider.account_id, conversationId: message.chatwootConversationId, @@ -2258,8 +2032,6 @@ export class ChatwootService { } if (event === 'messages.read') { - this.logger.verbose('read message from instance: ' + instance.instanceName); - if (!body?.key?.id || !body?.key?.remoteJid) { this.logger.warn('message id not found'); return; @@ -2299,7 +2071,6 @@ export class ChatwootService { } if (event === 'status.instance') { - this.logger.verbose('event status.instance'); const data = body; const inbox = await this.getInbox(instance); @@ -2313,18 +2084,14 @@ export class ChatwootService { state: data.status, }); - this.logger.verbose('send message to chatwoot'); await this.createBotMessage(instance, msgStatus, 'incoming'); } if (event === 'connection.update') { - this.logger.verbose('event connection.update'); - if (body.status === 'open') { // if we have qrcode count then we understand that a new connection was established if (this.waMonitor.waInstances[instance.instanceName].qrCode.count > 0) { const msgConnection = i18next.t('cw.inbox.connected'); - this.logger.verbose('send message to chatwoot'); await this.createBotMessage(instance, msgConnection, 'incoming'); this.waMonitor.waInstances[instance.instanceName].qrCode.count = 0; chatwootImport.clearAll(instance); @@ -2333,26 +2100,16 @@ export class ChatwootService { } if (event === 'qrcode.updated') { - this.logger.verbose('event qrcode.updated'); if (body.statusCode === 500) { - this.logger.verbose('qrcode error'); - const erroQRcode = `🚨 ${i18next.t('qrlimitreached')}`; - - this.logger.verbose('send message to chatwoot'); return await this.createBotMessage(instance, erroQRcode, 'incoming'); } else { - this.logger.verbose('qrcode success'); const fileData = Buffer.from(body?.qrcode.base64.replace('data:image/png;base64,', ''), 'base64'); const fileName = `${path.join(waInstance?.storePath, 'temp', `${instance.instanceName}.png`)}`; - this.logger.verbose('temp file name: ' + fileName); - - this.logger.verbose('create temp file'); writeFileSync(fileName, fileData, 'utf8'); - this.logger.verbose('send qrcode to chatwoot'); await this.createBotQr(instance, i18next.t('qrgeneratedsuccesfully'), 'incoming', fileName); let msgQrCode = `⚡️${i18next.t('qrgeneratedsuccesfully')}\n\n${i18next.t('scanqr')}`; @@ -2366,7 +2123,6 @@ export class ChatwootService { )}`; } - this.logger.verbose('send message to chatwoot'); await this.createBotMessage(instance, msgQrCode, 'incoming'); } } @@ -2393,9 +2149,6 @@ export class ChatwootService { return uri && uri !== 'postgres://user:password@hostname:port/dbname'; } - /* We can't proccess messages exactly in batch because Chatwoot use message id to order - messages in frontend and we are receiving the messages mixed between the batches. - Because this, we need to put all batches together and order after */ public addHistoryMessages(instance: InstanceDto, messagesRaw: MessageModel[]) { if (!this.isImportHistoryAvailable()) { return; diff --git a/src/api/integrations/rabbitmq/controllers/rabbitmq.controller.ts b/src/api/integrations/rabbitmq/controllers/rabbitmq.controller.ts index 42731834..e96296b5 100644 --- a/src/api/integrations/rabbitmq/controllers/rabbitmq.controller.ts +++ b/src/api/integrations/rabbitmq/controllers/rabbitmq.controller.ts @@ -1,27 +1,20 @@ import { configService, Rabbitmq } from '../../../../config/env.config'; -import { Logger } from '../../../../config/logger.config'; import { BadRequestException } from '../../../../exceptions'; import { InstanceDto } from '../../../dto/instance.dto'; import { RabbitmqDto } from '../dto/rabbitmq.dto'; import { RabbitmqService } from '../services/rabbitmq.service'; -const logger = new Logger('RabbitmqController'); - export class RabbitmqController { constructor(private readonly rabbitmqService: RabbitmqService) {} public async createRabbitmq(instance: InstanceDto, data: RabbitmqDto) { if (!configService.get('RABBITMQ').ENABLED) throw new BadRequestException('Rabbitmq is disabled'); - logger.verbose('requested createRabbitmq from ' + instance.instanceName + ' instance'); - if (!data.enabled) { - logger.verbose('rabbitmq disabled'); data.events = []; } if (data.events.length === 0) { - logger.verbose('rabbitmq events empty'); data.events = [ 'APPLICATION_STARTUP', 'QRCODE_UPDATED', @@ -54,7 +47,6 @@ export class RabbitmqController { } public async findRabbitmq(instance: InstanceDto) { - logger.verbose('requested findRabbitmq from ' + instance.instanceName + ' instance'); return this.rabbitmqService.find(instance); } } diff --git a/src/api/integrations/rabbitmq/routes/rabbitmq.router.ts b/src/api/integrations/rabbitmq/routes/rabbitmq.router.ts index a477a5ba..4c822184 100644 --- a/src/api/integrations/rabbitmq/routes/rabbitmq.router.ts +++ b/src/api/integrations/rabbitmq/routes/rabbitmq.router.ts @@ -1,6 +1,5 @@ import { RequestHandler, Router } from 'express'; -import { Logger } from '../../../../config/logger.config'; import { instanceNameSchema, rabbitmqSchema } from '../../../../validate/validate.schema'; import { RouterBroker } from '../../../abstract/abstract.router'; import { InstanceDto } from '../../../dto/instance.dto'; @@ -8,19 +7,11 @@ import { HttpStatus } from '../../../routes/index.router'; import { rabbitmqController } from '../../../server.module'; import { RabbitmqDto } from '../dto/rabbitmq.dto'; -const logger = new Logger('RabbitmqRouter'); - export class RabbitmqRouter extends RouterBroker { constructor(...guards: RequestHandler[]) { super(); this.router .post(this.routerPath('set'), ...guards, async (req, res) => { - logger.verbose('request received in setRabbitmq'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: rabbitmqSchema, @@ -31,12 +22,6 @@ export class RabbitmqRouter extends RouterBroker { res.status(HttpStatus.CREATED).json(response); }) .get(this.routerPath('find'), ...guards, async (req, res) => { - logger.verbose('request received in findRabbitmq'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: instanceNameSchema, diff --git a/src/api/integrations/rabbitmq/services/rabbitmq.service.ts b/src/api/integrations/rabbitmq/services/rabbitmq.service.ts index 0b2edd9e..53af10db 100644 --- a/src/api/integrations/rabbitmq/services/rabbitmq.service.ts +++ b/src/api/integrations/rabbitmq/services/rabbitmq.service.ts @@ -12,7 +12,6 @@ export class RabbitmqService { private readonly logger = new Logger(RabbitmqService.name); public create(instance: InstanceDto, data: RabbitmqDto) { - this.logger.verbose('create rabbitmq: ' + instance.instanceName); this.waMonitor.waInstances[instance.instanceName].setRabbitmq(data); initQueues(instance.instanceName, data.events); @@ -21,7 +20,6 @@ export class RabbitmqService { public async find(instance: InstanceDto): Promise { try { - this.logger.verbose('find rabbitmq: ' + instance.instanceName); const result = await this.waMonitor.waInstances[instance.instanceName].findRabbitmq(); if (Object.keys(result).length === 0) { diff --git a/src/api/integrations/sqs/controllers/sqs.controller.ts b/src/api/integrations/sqs/controllers/sqs.controller.ts index 9ac9238c..4dcf3e92 100644 --- a/src/api/integrations/sqs/controllers/sqs.controller.ts +++ b/src/api/integrations/sqs/controllers/sqs.controller.ts @@ -1,26 +1,20 @@ import { configService, Sqs } from '../../../../config/env.config'; -import { Logger } from '../../../../config/logger.config'; import { BadRequestException } from '../../../../exceptions'; import { InstanceDto } from '../../../dto/instance.dto'; import { SqsDto } from '../dto/sqs.dto'; import { SqsService } from '../services/sqs.service'; -const logger = new Logger('SqsController'); - export class SqsController { constructor(private readonly sqsService: SqsService) {} public async createSqs(instance: InstanceDto, data: SqsDto) { if (!configService.get('SQS').ENABLED) throw new BadRequestException('Sqs is disabled'); - logger.verbose('requested createSqs from ' + instance.instanceName + ' instance'); if (!data.enabled) { - logger.verbose('sqs disabled'); data.events = []; } if (data.events.length === 0) { - logger.verbose('sqs events empty'); data.events = [ 'APPLICATION_STARTUP', 'QRCODE_UPDATED', @@ -53,7 +47,6 @@ export class SqsController { } public async findSqs(instance: InstanceDto) { - logger.verbose('requested findSqs from ' + instance.instanceName + ' instance'); return this.sqsService.find(instance); } } diff --git a/src/api/integrations/sqs/routes/sqs.router.ts b/src/api/integrations/sqs/routes/sqs.router.ts index 80d14838..552d8e69 100644 --- a/src/api/integrations/sqs/routes/sqs.router.ts +++ b/src/api/integrations/sqs/routes/sqs.router.ts @@ -1,6 +1,5 @@ import { RequestHandler, Router } from 'express'; -import { Logger } from '../../../../config/logger.config'; import { instanceNameSchema, sqsSchema } from '../../../../validate/validate.schema'; import { RouterBroker } from '../../../abstract/abstract.router'; import { InstanceDto } from '../../../dto/instance.dto'; @@ -8,19 +7,11 @@ import { HttpStatus } from '../../../routes/index.router'; import { sqsController } from '../../../server.module'; import { SqsDto } from '../dto/sqs.dto'; -const logger = new Logger('SqsRouter'); - export class SqsRouter extends RouterBroker { constructor(...guards: RequestHandler[]) { super(); this.router .post(this.routerPath('set'), ...guards, async (req, res) => { - logger.verbose('request received in setSqs'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: sqsSchema, @@ -31,12 +22,6 @@ export class SqsRouter extends RouterBroker { res.status(HttpStatus.CREATED).json(response); }) .get(this.routerPath('find'), ...guards, async (req, res) => { - logger.verbose('request received in findSqs'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: instanceNameSchema, diff --git a/src/api/integrations/sqs/services/sqs.service.ts b/src/api/integrations/sqs/services/sqs.service.ts index aad0d6e7..30f15282 100644 --- a/src/api/integrations/sqs/services/sqs.service.ts +++ b/src/api/integrations/sqs/services/sqs.service.ts @@ -12,7 +12,6 @@ export class SqsService { private readonly logger = new Logger(SqsService.name); public create(instance: InstanceDto, data: SqsDto) { - this.logger.verbose('create sqs: ' + instance.instanceName); this.waMonitor.waInstances[instance.instanceName].setSqs(data); initQueues(instance.instanceName, data.events); @@ -21,7 +20,6 @@ export class SqsService { public async find(instance: InstanceDto): Promise { try { - this.logger.verbose('find sqs: ' + instance.instanceName); const result = await this.waMonitor.waInstances[instance.instanceName].findSqs(); if (Object.keys(result).length === 0) { diff --git a/src/api/integrations/typebot/controllers/typebot.controller.ts b/src/api/integrations/typebot/controllers/typebot.controller.ts index c4c9684b..e45f88f7 100644 --- a/src/api/integrations/typebot/controllers/typebot.controller.ts +++ b/src/api/integrations/typebot/controllers/typebot.controller.ts @@ -1,22 +1,16 @@ import { configService, Typebot } from '../../../../config/env.config'; -import { Logger } from '../../../../config/logger.config'; import { BadRequestException } from '../../../../exceptions'; import { InstanceDto } from '../../../dto/instance.dto'; import { TypebotDto } from '../dto/typebot.dto'; import { TypebotService } from '../services/typebot.service'; -const logger = new Logger('TypebotController'); - export class TypebotController { constructor(private readonly typebotService: TypebotService) {} public async createTypebot(instance: InstanceDto, data: TypebotDto) { if (!configService.get('TYPEBOT').ENABLED) throw new BadRequestException('Typebot is disabled'); - logger.verbose('requested createTypebot from ' + instance.instanceName + ' instance'); - if (!data.enabled) { - logger.verbose('typebot disabled'); data.url = ''; data.typebot = ''; data.expire = 0; @@ -25,7 +19,6 @@ export class TypebotController { const saveData = await this.typebotService.find(instance); if (saveData.enabled) { - logger.verbose('typebot enabled'); data.sessions = saveData.sessions; } } @@ -36,21 +29,18 @@ export class TypebotController { public async findTypebot(instance: InstanceDto) { if (!configService.get('TYPEBOT').ENABLED) throw new BadRequestException('Typebot is disabled'); - logger.verbose('requested findTypebot from ' + instance.instanceName + ' instance'); return this.typebotService.find(instance); } public async changeStatus(instance: InstanceDto, data: any) { if (!configService.get('TYPEBOT').ENABLED) throw new BadRequestException('Typebot is disabled'); - logger.verbose('requested changeStatus from ' + instance.instanceName + ' instance'); return this.typebotService.changeStatus(instance, data); } public async startTypebot(instance: InstanceDto, data: any) { if (!configService.get('TYPEBOT').ENABLED) throw new BadRequestException('Typebot is disabled'); - logger.verbose('requested startTypebot from ' + instance.instanceName + ' instance'); return this.typebotService.startTypebot(instance, data); } } diff --git a/src/api/integrations/typebot/routes/typebot.router.ts b/src/api/integrations/typebot/routes/typebot.router.ts index 2eed2b39..413f91b2 100644 --- a/src/api/integrations/typebot/routes/typebot.router.ts +++ b/src/api/integrations/typebot/routes/typebot.router.ts @@ -1,6 +1,5 @@ import { RequestHandler, Router } from 'express'; -import { Logger } from '../../../../config/logger.config'; import { instanceNameSchema, typebotSchema, @@ -13,19 +12,11 @@ import { HttpStatus } from '../../../routes/index.router'; import { typebotController } from '../../../server.module'; import { TypebotDto } from '../dto/typebot.dto'; -const logger = new Logger('TypebotRouter'); - export class TypebotRouter extends RouterBroker { constructor(...guards: RequestHandler[]) { super(); this.router .post(this.routerPath('set'), ...guards, async (req, res) => { - logger.verbose('request received in setTypebot'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: typebotSchema, @@ -36,12 +27,6 @@ export class TypebotRouter extends RouterBroker { res.status(HttpStatus.CREATED).json(response); }) .get(this.routerPath('find'), ...guards, async (req, res) => { - logger.verbose('request received in findTypebot'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: instanceNameSchema, @@ -52,12 +37,6 @@ export class TypebotRouter extends RouterBroker { res.status(HttpStatus.OK).json(response); }) .post(this.routerPath('changeStatus'), ...guards, async (req, res) => { - logger.verbose('request received in changeStatusTypebot'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: typebotStatusSchema, @@ -68,12 +47,6 @@ export class TypebotRouter extends RouterBroker { res.status(HttpStatus.OK).json(response); }) .post(this.routerPath('start'), ...guards, async (req, res) => { - logger.verbose('request received in startTypebot'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: typebotStartSchema, diff --git a/src/api/integrations/typebot/services/typebot.service.ts b/src/api/integrations/typebot/services/typebot.service.ts index eef9c0e7..de2205c9 100644 --- a/src/api/integrations/typebot/services/typebot.service.ts +++ b/src/api/integrations/typebot/services/typebot.service.ts @@ -26,7 +26,6 @@ export class TypebotService { private readonly logger = new Logger(TypebotService.name); public create(instance: InstanceDto, data: TypebotDto) { - this.logger.verbose('create typebot: ' + instance.instanceName); this.waMonitor.waInstances[instance.instanceName].setTypebot(data); return { typebot: { ...instance, typebot: data } }; @@ -34,7 +33,6 @@ export class TypebotService { public async find(instance: InstanceDto): Promise { try { - this.logger.verbose('find typebot: ' + instance.instanceName); const result = await this.waMonitor.waInstances[instance.instanceName].findTypebot(); if (Object.keys(result).length === 0) { @@ -270,7 +268,6 @@ export class TypebotService { } private getTypeMessage(msg: any) { - this.logger.verbose('get type message'); const types = { conversation: msg.conversation, extendedTextMessage: msg.extendedTextMessage?.text, @@ -290,128 +287,89 @@ export class TypebotService { const messageType = Object.keys(types).find((key) => types[key] !== undefined) || 'unknown'; - this.logger.verbose('Type message: ' + JSON.stringify(types)); return { ...types, messageType }; } private getMessageContent(types: any) { - this.logger.verbose('get message content'); const typeKey = Object.keys(types).find((key) => types[key] !== undefined); const result = typeKey ? types[typeKey] : undefined; - this.logger.verbose('message content: ' + result); - return result; } private getConversationMessage(msg: any) { - this.logger.verbose('get conversation message'); - const types = this.getTypeMessage(msg); const messageContent = this.getMessageContent(types); - this.logger.verbose('conversation message: ' + messageContent); - return messageContent; } private getAudioMessageContent(msg: any) { - this.logger.verbose('get audio message content'); - const types = this.getTypeMessage(msg); const audioContent = types.audioMessage; - this.logger.verbose('audio message URL: ' + audioContent); - return audioContent; } private getImageMessageContent(msg: any) { - this.logger.verbose('get image message content'); - const types = this.getTypeMessage(msg); const imageContent = types.imageMessage; - this.logger.verbose('image message URL: ' + imageContent); - return imageContent; } private getVideoMessageContent(msg: any) { - this.logger.verbose('get video message content'); - const types = this.getTypeMessage(msg); const videoContent = types.videoMessage; - this.logger.verbose('video message URL: ' + videoContent); - return videoContent; } private getDocumentMessageContent(msg: any) { - this.logger.verbose('get document message content'); - const types = this.getTypeMessage(msg); const documentContent = types.documentMessage; - this.logger.verbose('document message fileName: ' + documentContent); - return documentContent; } private getContactMessageContent(msg: any) { - this.logger.verbose('get contact message content'); - const types = this.getTypeMessage(msg); const contactContent = types.contactMessage; - this.logger.verbose('contact message displayName: ' + contactContent); - return contactContent; } private getLocationMessageContent(msg: any) { - this.logger.verbose('get location message content'); - const types = this.getTypeMessage(msg); const locationContent = types.locationMessage; - this.logger.verbose('location message degreesLatitude: ' + locationContent); - return locationContent; } private getViewOnceMessageV2Content(msg: any) { - this.logger.verbose('get viewOnceMessageV2 content'); - const types = this.getTypeMessage(msg); const viewOnceContent = types.viewOnceMessageV2; - this.logger.verbose('viewOnceMessageV2 URL: ' + viewOnceContent); - return viewOnceContent; } private getListResponseMessageContent(msg: any) { - this.logger.verbose('get listResponseMessage content'); - const types = this.getTypeMessage(msg); const listResponseContent = types.listResponseMessage || types.responseRowId; - this.logger.verbose('listResponseMessage selectedRowId: ' + listResponseContent); - return listResponseContent; } + public async createNewSession(instance: InstanceDto, data: any) { if (data.remoteJid === 'status@broadcast') return; const id = Math.floor(Math.random() * 10000000000).toString(); diff --git a/src/api/integrations/websocket/controllers/websocket.controller.ts b/src/api/integrations/websocket/controllers/websocket.controller.ts index d2f2664d..f52c1ed6 100644 --- a/src/api/integrations/websocket/controllers/websocket.controller.ts +++ b/src/api/integrations/websocket/controllers/websocket.controller.ts @@ -1,23 +1,16 @@ -import { Logger } from '../../../../config/logger.config'; import { InstanceDto } from '../../../dto/instance.dto'; import { WebsocketDto } from '../dto/websocket.dto'; import { WebsocketService } from '../services/websocket.service'; -const logger = new Logger('WebsocketController'); - export class WebsocketController { constructor(private readonly websocketService: WebsocketService) {} public async createWebsocket(instance: InstanceDto, data: WebsocketDto) { - logger.verbose('requested createWebsocket from ' + instance.instanceName + ' instance'); - if (!data.enabled) { - logger.verbose('websocket disabled'); data.events = []; } if (data.events.length === 0) { - logger.verbose('websocket events empty'); data.events = [ 'APPLICATION_STARTUP', 'QRCODE_UPDATED', @@ -50,7 +43,6 @@ export class WebsocketController { } public async findWebsocket(instance: InstanceDto) { - logger.verbose('requested findWebsocket from ' + instance.instanceName + ' instance'); return this.websocketService.find(instance); } } diff --git a/src/api/integrations/websocket/libs/socket.server.ts b/src/api/integrations/websocket/libs/socket.server.ts index 81f97847..948527ae 100644 --- a/src/api/integrations/websocket/libs/socket.server.ts +++ b/src/api/integrations/websocket/libs/socket.server.ts @@ -33,8 +33,6 @@ export const initIO = (httpServer: Server) => { }; export const getIO = (): SocketIO => { - logger.verbose('Getting Socket.io'); - if (!io) { logger.error('Socket.io not initialized'); throw new Error('Socket.io not initialized'); diff --git a/src/api/integrations/websocket/routes/websocket.router.ts b/src/api/integrations/websocket/routes/websocket.router.ts index 0c39d53c..a99466b2 100644 --- a/src/api/integrations/websocket/routes/websocket.router.ts +++ b/src/api/integrations/websocket/routes/websocket.router.ts @@ -1,6 +1,5 @@ import { RequestHandler, Router } from 'express'; -import { Logger } from '../../../../config/logger.config'; import { instanceNameSchema, websocketSchema } from '../../../../validate/validate.schema'; import { RouterBroker } from '../../../abstract/abstract.router'; import { InstanceDto } from '../../../dto/instance.dto'; @@ -8,19 +7,11 @@ import { HttpStatus } from '../../../routes/index.router'; import { websocketController } from '../../../server.module'; import { WebsocketDto } from '../dto/websocket.dto'; -const logger = new Logger('WebsocketRouter'); - export class WebsocketRouter extends RouterBroker { constructor(...guards: RequestHandler[]) { super(); this.router .post(this.routerPath('set'), ...guards, async (req, res) => { - logger.verbose('request received in setWebsocket'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: websocketSchema, @@ -31,12 +22,6 @@ export class WebsocketRouter extends RouterBroker { res.status(HttpStatus.CREATED).json(response); }) .get(this.routerPath('find'), ...guards, async (req, res) => { - logger.verbose('request received in findWebsocket'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: instanceNameSchema, diff --git a/src/api/integrations/websocket/services/websocket.service.ts b/src/api/integrations/websocket/services/websocket.service.ts index 585800c7..0f0d2457 100644 --- a/src/api/integrations/websocket/services/websocket.service.ts +++ b/src/api/integrations/websocket/services/websocket.service.ts @@ -11,7 +11,6 @@ export class WebsocketService { private readonly logger = new Logger(WebsocketService.name); public create(instance: InstanceDto, data: WebsocketDto) { - this.logger.verbose('create websocket: ' + instance.instanceName); this.waMonitor.waInstances[instance.instanceName].setWebsocket(data); return { websocket: { ...instance, websocket: data } }; @@ -19,7 +18,6 @@ export class WebsocketService { public async find(instance: InstanceDto): Promise { try { - this.logger.verbose('find websocket: ' + instance.instanceName); const result = await this.waMonitor.waInstances[instance.instanceName].findWebsocket(); if (Object.keys(result).length === 0) { diff --git a/src/api/routes/chat.router.ts b/src/api/routes/chat.router.ts index 4dea069a..a70f9d49 100644 --- a/src/api/routes/chat.router.ts +++ b/src/api/routes/chat.router.ts @@ -1,7 +1,6 @@ import { Contact, Message, MessageUpdate } from '@prisma/client'; import { RequestHandler, Router } from 'express'; -import { Logger } from '../../config/logger.config'; import { archiveChatSchema, blockUserSchema, @@ -42,20 +41,11 @@ import { Query } from '../repository/repository.service'; import { chatController } from '../server.module'; import { HttpStatus } from './index.router'; -const logger = new Logger('ChatRouter'); - export class ChatRouter extends RouterBroker { constructor(...guards: RequestHandler[]) { super(); this.router .post(this.routerPath('whatsappNumbers'), ...guards, async (req, res) => { - logger.verbose('request received in whatsappNumbers'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); - const response = await this.dataValidate({ request: req, schema: whatsappNumberSchema, @@ -66,13 +56,6 @@ export class ChatRouter extends RouterBroker { return res.status(HttpStatus.OK).json(response); }) .put(this.routerPath('markMessageAsRead'), ...guards, async (req, res) => { - logger.verbose('request received in markMessageAsRead'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); - const response = await this.dataValidate({ request: req, schema: readMessageSchema, @@ -83,13 +66,6 @@ export class ChatRouter extends RouterBroker { return res.status(HttpStatus.CREATED).json(response); }) .put(this.routerPath('archiveChat'), ...guards, async (req, res) => { - logger.verbose('request received in archiveChat'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); - const response = await this.dataValidate({ request: req, schema: archiveChatSchema, @@ -100,13 +76,6 @@ export class ChatRouter extends RouterBroker { return res.status(HttpStatus.CREATED).json(response); }) .put(this.routerPath('markChatUnread'), ...guards, async (req, res) => { - logger.verbose('request received in markChatUnread'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); - const response = await this.dataValidate({ request: req, schema: markChatUnreadSchema, @@ -117,13 +86,6 @@ export class ChatRouter extends RouterBroker { return res.status(HttpStatus.CREATED).json(response); }) .delete(this.routerPath('deleteMessageForEveryone'), ...guards, async (req, res) => { - logger.verbose('request received in deleteMessageForEveryone'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); - const response = await this.dataValidate({ request: req, schema: deleteMessageSchema, @@ -134,13 +96,6 @@ export class ChatRouter extends RouterBroker { return res.status(HttpStatus.CREATED).json(response); }) .post(this.routerPath('fetchProfilePictureUrl'), ...guards, async (req, res) => { - logger.verbose('request received in fetchProfilePictureUrl'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); - const response = await this.dataValidate({ request: req, schema: profilePictureSchema, @@ -151,13 +106,6 @@ export class ChatRouter extends RouterBroker { return res.status(HttpStatus.OK).json(response); }) .post(this.routerPath('fetchProfile'), ...guards, async (req, res) => { - logger.verbose('request received in fetchProfile'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); - const response = await this.dataValidate({ request: req, schema: profileSchema, @@ -168,13 +116,6 @@ export class ChatRouter extends RouterBroker { return res.status(HttpStatus.OK).json(response); }) .post(this.routerPath('findContacts'), ...guards, async (req, res) => { - logger.verbose('request received in findContacts'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); - const response = await this.dataValidate>({ request: req, schema: contactValidateSchema, @@ -185,13 +126,6 @@ export class ChatRouter extends RouterBroker { return res.status(HttpStatus.OK).json(response); }) .post(this.routerPath('getBase64FromMediaMessage'), ...guards, async (req, res) => { - logger.verbose('request received in getBase64FromMediaMessage'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); - const response = await this.dataValidate({ request: req, schema: null, @@ -202,13 +136,6 @@ export class ChatRouter extends RouterBroker { return res.status(HttpStatus.CREATED).json(response); }) .post(this.routerPath('findMessages'), ...guards, async (req, res) => { - logger.verbose('request received in findMessages'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); - const response = await this.dataValidate>({ request: req, schema: messageValidateSchema, @@ -219,13 +146,6 @@ export class ChatRouter extends RouterBroker { return res.status(HttpStatus.OK).json(response); }) .post(this.routerPath('findStatusMessage'), ...guards, async (req, res) => { - logger.verbose('request received in findStatusMessage'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); - const response = await this.dataValidate>({ request: req, schema: messageUpSchema, @@ -236,13 +156,6 @@ export class ChatRouter extends RouterBroker { return res.status(HttpStatus.OK).json(response); }) .get(this.routerPath('findChats'), ...guards, async (req, res) => { - logger.verbose('request received in findChats'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); - const response = await this.dataValidate({ request: req, schema: null, @@ -253,12 +166,6 @@ export class ChatRouter extends RouterBroker { return res.status(HttpStatus.OK).json(response); }) .post(this.routerPath('sendPresence'), ...guards, async (req, res) => { - logger.verbose('request received in sendPresence'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: presenceSchema, @@ -270,13 +177,6 @@ export class ChatRouter extends RouterBroker { }) // Profile routes .get(this.routerPath('fetchPrivacySettings'), ...guards, async (req, res) => { - logger.verbose('request received in fetchPrivacySettings'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); - const response = await this.dataValidate({ request: req, schema: null, @@ -287,13 +187,6 @@ export class ChatRouter extends RouterBroker { return res.status(HttpStatus.OK).json(response); }) .put(this.routerPath('updatePrivacySettings'), ...guards, async (req, res) => { - logger.verbose('request received in updatePrivacySettings'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); - const response = await this.dataValidate({ request: req, schema: privacySettingsSchema, @@ -304,13 +197,6 @@ export class ChatRouter extends RouterBroker { return res.status(HttpStatus.CREATED).json(response); }) .post(this.routerPath('fetchBusinessProfile'), ...guards, async (req, res) => { - logger.verbose('request received in fetchBusinessProfile'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); - const response = await this.dataValidate({ request: req, schema: profilePictureSchema, @@ -321,13 +207,6 @@ export class ChatRouter extends RouterBroker { return res.status(HttpStatus.OK).json(response); }) .post(this.routerPath('updateProfileName'), ...guards, async (req, res) => { - logger.verbose('request received in updateProfileName'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); - const response = await this.dataValidate({ request: req, schema: profileNameSchema, @@ -338,13 +217,6 @@ export class ChatRouter extends RouterBroker { return res.status(HttpStatus.OK).json(response); }) .post(this.routerPath('updateProfileStatus'), ...guards, async (req, res) => { - logger.verbose('request received in updateProfileStatus'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); - const response = await this.dataValidate({ request: req, schema: profileStatusSchema, @@ -355,13 +227,6 @@ export class ChatRouter extends RouterBroker { return res.status(HttpStatus.OK).json(response); }) .put(this.routerPath('updateProfilePicture'), ...guards, async (req, res) => { - logger.verbose('request received in updateProfilePicture'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); - const response = await this.dataValidate({ request: req, schema: profilePictureSchema, @@ -372,13 +237,6 @@ export class ChatRouter extends RouterBroker { return res.status(HttpStatus.OK).json(response); }) .delete(this.routerPath('removeProfilePicture'), ...guards, async (req, res) => { - logger.verbose('request received in removeProfilePicture'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); - const response = await this.dataValidate({ request: req, schema: profilePictureSchema, @@ -389,13 +247,6 @@ export class ChatRouter extends RouterBroker { return res.status(HttpStatus.OK).json(response); }) .put(this.routerPath('updateMessage'), ...guards, async (req, res) => { - logger.verbose('request received in updateMessage'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); - const response = await this.dataValidate({ request: req, schema: updateMessageSchema, @@ -406,13 +257,6 @@ export class ChatRouter extends RouterBroker { return res.status(HttpStatus.OK).json(response); }) .put(this.routerPath('updateBlockStatus'), ...guards, async (req, res) => { - logger.verbose('request received in updateBlockStatus'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); - const response = await this.dataValidate({ request: req, schema: blockUserSchema, diff --git a/src/api/routes/group.router.ts b/src/api/routes/group.router.ts index 244dfee2..845c4e42 100644 --- a/src/api/routes/group.router.ts +++ b/src/api/routes/group.router.ts @@ -1,6 +1,5 @@ import { RequestHandler, Router } from 'express'; -import { Logger } from '../../config/logger.config'; import { AcceptGroupInviteSchema, createGroupSchema, @@ -33,19 +32,11 @@ import { import { groupController } from '../server.module'; import { HttpStatus } from './index.router'; -const logger = new Logger('GroupRouter'); - export class GroupRouter extends RouterBroker { constructor(...guards: RequestHandler[]) { super(); this.router .post(this.routerPath('create'), ...guards, async (req, res) => { - logger.verbose('request received in createGroup'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: createGroupSchema, @@ -56,13 +47,6 @@ export class GroupRouter extends RouterBroker { res.status(HttpStatus.CREATED).json(response); }) .put(this.routerPath('updateGroupSubject'), ...guards, async (req, res) => { - logger.verbose('request received in updateGroupSubject'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); - const response = await this.groupValidate({ request: req, schema: updateGroupSubjectSchema, @@ -73,12 +57,6 @@ export class GroupRouter extends RouterBroker { res.status(HttpStatus.CREATED).json(response); }) .put(this.routerPath('updateGroupPicture'), ...guards, async (req, res) => { - logger.verbose('request received in updateGroupPicture'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.groupValidate({ request: req, schema: updateGroupPictureSchema, @@ -89,12 +67,6 @@ export class GroupRouter extends RouterBroker { res.status(HttpStatus.CREATED).json(response); }) .put(this.routerPath('updateGroupDescription'), ...guards, async (req, res) => { - logger.verbose('request received in updateGroupDescription'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.groupValidate({ request: req, schema: updateGroupDescriptionSchema, @@ -105,12 +77,6 @@ export class GroupRouter extends RouterBroker { res.status(HttpStatus.CREATED).json(response); }) .get(this.routerPath('findGroupInfos'), ...guards, async (req, res) => { - logger.verbose('request received in findGroupInfos'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.groupValidate({ request: req, schema: groupJidSchema, @@ -121,12 +87,6 @@ export class GroupRouter extends RouterBroker { res.status(HttpStatus.OK).json(response); }) .get(this.routerPath('fetchAllGroups'), ...guards, async (req, res) => { - logger.verbose('request received in fetchAllGroups'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.getParticipantsValidate({ request: req, schema: getParticipantsSchema, @@ -137,12 +97,6 @@ export class GroupRouter extends RouterBroker { res.status(HttpStatus.OK).json(response); }) .get(this.routerPath('participants'), ...guards, async (req, res) => { - logger.verbose('request received in participants'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.groupValidate({ request: req, schema: groupJidSchema, @@ -153,12 +107,6 @@ export class GroupRouter extends RouterBroker { res.status(HttpStatus.OK).json(response); }) .get(this.routerPath('inviteCode'), ...guards, async (req, res) => { - logger.verbose('request received in inviteCode'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.groupValidate({ request: req, schema: groupJidSchema, @@ -169,12 +117,6 @@ export class GroupRouter extends RouterBroker { res.status(HttpStatus.OK).json(response); }) .get(this.routerPath('inviteInfo'), ...guards, async (req, res) => { - logger.verbose('request received in inviteInfo'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.inviteCodeValidate({ request: req, schema: groupInviteSchema, @@ -185,12 +127,6 @@ export class GroupRouter extends RouterBroker { res.status(HttpStatus.OK).json(response); }) .get(this.routerPath('acceptInviteCode'), ...guards, async (req, res) => { - logger.verbose('request received in acceptInviteCode'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.inviteCodeValidate({ request: req, schema: AcceptGroupInviteSchema, @@ -201,12 +137,6 @@ export class GroupRouter extends RouterBroker { res.status(HttpStatus.OK).json(response); }) .post(this.routerPath('sendInvite'), ...guards, async (req, res) => { - logger.verbose('request received in sendInvite'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.groupNoValidate({ request: req, schema: groupSendInviteSchema, @@ -217,12 +147,6 @@ export class GroupRouter extends RouterBroker { res.status(HttpStatus.OK).json(response); }) .put(this.routerPath('revokeInviteCode'), ...guards, async (req, res) => { - logger.verbose('request received in revokeInviteCode'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.groupValidate({ request: req, schema: groupJidSchema, @@ -233,12 +157,6 @@ export class GroupRouter extends RouterBroker { res.status(HttpStatus.CREATED).json(response); }) .put(this.routerPath('updateParticipant'), ...guards, async (req, res) => { - logger.verbose('request received in updateParticipant'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.groupValidate({ request: req, schema: updateParticipantsSchema, @@ -249,12 +167,6 @@ export class GroupRouter extends RouterBroker { res.status(HttpStatus.CREATED).json(response); }) .put(this.routerPath('updateSetting'), ...guards, async (req, res) => { - logger.verbose('request received in updateSetting'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.groupValidate({ request: req, schema: updateSettingsSchema, @@ -265,12 +177,6 @@ export class GroupRouter extends RouterBroker { res.status(HttpStatus.CREATED).json(response); }) .put(this.routerPath('toggleEphemeral'), ...guards, async (req, res) => { - logger.verbose('request received in toggleEphemeral'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.groupValidate({ request: req, schema: toggleEphemeralSchema, @@ -281,12 +187,6 @@ export class GroupRouter extends RouterBroker { res.status(HttpStatus.CREATED).json(response); }) .delete(this.routerPath('leaveGroup'), ...guards, async (req, res) => { - logger.verbose('request received in leaveGroup'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.groupValidate({ request: req, schema: {}, diff --git a/src/api/routes/instance.router.ts b/src/api/routes/instance.router.ts index f00bbb99..bae8832d 100644 --- a/src/api/routes/instance.router.ts +++ b/src/api/routes/instance.router.ts @@ -1,27 +1,17 @@ import { RequestHandler, Router } from 'express'; import { ConfigService } from '../../config/env.config'; -import { Logger } from '../../config/logger.config'; import { instanceNameSchema, presenceOnlySchema } from '../../validate/validate.schema'; import { RouterBroker } from '../abstract/abstract.router'; import { InstanceDto, SetPresenceDto } from '../dto/instance.dto'; import { instanceController } from '../server.module'; import { HttpStatus } from './index.router'; -const logger = new Logger('InstanceRouter'); - export class InstanceRouter extends RouterBroker { constructor(readonly configService: ConfigService, ...guards: RequestHandler[]) { super(); this.router .post('/create', ...guards, async (req, res) => { - logger.verbose('request received in createInstance'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); - const response = await this.dataValidate({ request: req, schema: instanceNameSchema, @@ -32,12 +22,6 @@ export class InstanceRouter extends RouterBroker { return res.status(HttpStatus.CREATED).json(response); }) .put(this.routerPath('restart'), ...guards, async (req, res) => { - logger.verbose('request received in restartInstance'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: instanceNameSchema, @@ -48,12 +32,6 @@ export class InstanceRouter extends RouterBroker { return res.status(HttpStatus.OK).json(response); }) .get(this.routerPath('connect'), ...guards, async (req, res) => { - logger.verbose('request received in connectInstance'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: instanceNameSchema, @@ -64,12 +42,6 @@ export class InstanceRouter extends RouterBroker { return res.status(HttpStatus.OK).json(response); }) .get(this.routerPath('connectionState'), ...guards, async (req, res) => { - logger.verbose('request received in connectionState'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: instanceNameSchema, @@ -80,14 +52,8 @@ export class InstanceRouter extends RouterBroker { return res.status(HttpStatus.OK).json(response); }) .get(this.routerPath('fetchInstances', false), ...guards, async (req, res) => { - logger.verbose('request received in fetchInstances'); - logger.verbose('request body: '); - logger.verbose(req.body); - const key = req.get('apikey'); - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: null, @@ -98,12 +64,6 @@ export class InstanceRouter extends RouterBroker { return res.status(HttpStatus.OK).json(response); }) .post(this.routerPath('setPresence'), ...guards, async (req, res) => { - logger.verbose('request received in setPresence'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: presenceOnlySchema, @@ -114,12 +74,6 @@ export class InstanceRouter extends RouterBroker { return res.status(HttpStatus.CREATED).json(response); }) .delete(this.routerPath('logout'), ...guards, async (req, res) => { - logger.verbose('request received in logoutInstances'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: instanceNameSchema, @@ -130,12 +84,6 @@ export class InstanceRouter extends RouterBroker { return res.status(HttpStatus.OK).json(response); }) .delete(this.routerPath('delete'), ...guards, async (req, res) => { - logger.verbose('request received in deleteInstances'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: instanceNameSchema, diff --git a/src/api/routes/label.router.ts b/src/api/routes/label.router.ts index a6002bb9..961276bb 100644 --- a/src/api/routes/label.router.ts +++ b/src/api/routes/label.router.ts @@ -1,26 +1,16 @@ import { RequestHandler, Router } from 'express'; -import { Logger } from '../../config/logger.config'; import { handleLabelSchema } from '../../validate/validate.schema'; import { RouterBroker } from '../abstract/abstract.router'; import { HandleLabelDto, LabelDto } from '../dto/label.dto'; import { labelController } from '../server.module'; import { HttpStatus } from './index.router'; -const logger = new Logger('LabelRouter'); - export class LabelRouter extends RouterBroker { constructor(...guards: RequestHandler[]) { super(); this.router .get(this.routerPath('findLabels'), ...guards, async (req, res) => { - logger.verbose('request received in findLabels'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); - const response = await this.dataValidate({ request: req, schema: null, @@ -31,13 +21,6 @@ export class LabelRouter extends RouterBroker { return res.status(HttpStatus.OK).json(response); }) .put(this.routerPath('handleLabel'), ...guards, async (req, res) => { - logger.verbose('request received in handleLabel'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); - const response = await this.dataValidate({ request: req, schema: handleLabelSchema, diff --git a/src/api/routes/proxy.router.ts b/src/api/routes/proxy.router.ts index 284fe368..e568efbe 100644 --- a/src/api/routes/proxy.router.ts +++ b/src/api/routes/proxy.router.ts @@ -1,6 +1,5 @@ import { RequestHandler, Router } from 'express'; -import { Logger } from '../../config/logger.config'; import { instanceNameSchema, proxySchema } from '../../validate/validate.schema'; import { RouterBroker } from '../abstract/abstract.router'; import { InstanceDto } from '../dto/instance.dto'; @@ -8,19 +7,11 @@ import { ProxyDto } from '../dto/proxy.dto'; import { proxyController } from '../server.module'; import { HttpStatus } from './index.router'; -const logger = new Logger('ProxyRouter'); - export class ProxyRouter extends RouterBroker { constructor(...guards: RequestHandler[]) { super(); this.router .post(this.routerPath('set'), ...guards, async (req, res) => { - logger.verbose('request received in setProxy'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: proxySchema, @@ -31,12 +22,6 @@ export class ProxyRouter extends RouterBroker { res.status(HttpStatus.CREATED).json(response); }) .get(this.routerPath('find'), ...guards, async (req, res) => { - logger.verbose('request received in findProxy'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: instanceNameSchema, diff --git a/src/api/routes/sendMessage.router.ts b/src/api/routes/sendMessage.router.ts index 908a1a58..a5eebb46 100644 --- a/src/api/routes/sendMessage.router.ts +++ b/src/api/routes/sendMessage.router.ts @@ -1,6 +1,5 @@ import { RequestHandler, Router } from 'express'; -import { Logger } from '../../config/logger.config'; import { audioMessageSchema, buttonMessageSchema, @@ -33,19 +32,11 @@ import { import { sendMessageController } from '../server.module'; import { HttpStatus } from './index.router'; -const logger = new Logger('MessageRouter'); - export class MessageRouter extends RouterBroker { constructor(...guards: RequestHandler[]) { super(); this.router .post(this.routerPath('sendText'), ...guards, async (req, res) => { - logger.verbose('request received in sendText'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: textMessageSchema, @@ -56,12 +47,6 @@ export class MessageRouter extends RouterBroker { return res.status(HttpStatus.CREATED).json(response); }) .post(this.routerPath('sendMedia'), ...guards, async (req, res) => { - logger.verbose('request received in sendMedia'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: mediaMessageSchema, @@ -72,12 +57,6 @@ export class MessageRouter extends RouterBroker { return res.status(HttpStatus.CREATED).json(response); }) .post(this.routerPath('sendWhatsAppAudio'), ...guards, async (req, res) => { - logger.verbose('request received in sendWhatsAppAudio'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: audioMessageSchema, @@ -88,12 +67,6 @@ export class MessageRouter extends RouterBroker { return res.status(HttpStatus.CREATED).json(response); }) .post(this.routerPath('sendTemplate'), ...guards, async (req, res) => { - logger.verbose('request received in sendTemplate'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: templateMessageSchema, @@ -104,12 +77,6 @@ export class MessageRouter extends RouterBroker { return res.status(HttpStatus.CREATED).json(response); }) .post(this.routerPath('sendButtons'), ...guards, async (req, res) => { - logger.verbose('request received in sendButtons'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: buttonMessageSchema, @@ -120,12 +87,6 @@ export class MessageRouter extends RouterBroker { return res.status(HttpStatus.CREATED).json(response); }) .post(this.routerPath('sendLocation'), ...guards, async (req, res) => { - logger.verbose('request received in sendLocation'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: locationMessageSchema, @@ -136,12 +97,6 @@ export class MessageRouter extends RouterBroker { return res.status(HttpStatus.CREATED).json(response); }) .post(this.routerPath('sendList'), ...guards, async (req, res) => { - logger.verbose('request received in sendList'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: listMessageSchema, @@ -152,12 +107,6 @@ export class MessageRouter extends RouterBroker { return res.status(HttpStatus.CREATED).json(response); }) .post(this.routerPath('sendContact'), ...guards, async (req, res) => { - logger.verbose('request received in sendContact'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: contactMessageSchema, @@ -168,12 +117,6 @@ export class MessageRouter extends RouterBroker { return res.status(HttpStatus.CREATED).json(response); }) .post(this.routerPath('sendReaction'), ...guards, async (req, res) => { - logger.verbose('request received in sendReaction'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: reactionMessageSchema, @@ -184,12 +127,6 @@ export class MessageRouter extends RouterBroker { return res.status(HttpStatus.CREATED).json(response); }) .post(this.routerPath('sendPoll'), ...guards, async (req, res) => { - logger.verbose('request received in sendPoll'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: pollMessageSchema, @@ -200,12 +137,6 @@ export class MessageRouter extends RouterBroker { return res.status(HttpStatus.CREATED).json(response); }) .post(this.routerPath('sendStatus'), ...guards, async (req, res) => { - logger.verbose('request received in sendStatus'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: statusMessageSchema, @@ -216,12 +147,6 @@ export class MessageRouter extends RouterBroker { return res.status(HttpStatus.CREATED).json(response); }) .post(this.routerPath('sendSticker'), ...guards, async (req, res) => { - logger.verbose('request received in sendSticker'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: stickerMessageSchema, diff --git a/src/api/routes/settings.router.ts b/src/api/routes/settings.router.ts index c2d3bad9..b04ef04b 100644 --- a/src/api/routes/settings.router.ts +++ b/src/api/routes/settings.router.ts @@ -1,6 +1,5 @@ import { RequestHandler, Router } from 'express'; -import { Logger } from '../../config/logger.config'; import { instanceNameSchema, settingsSchema } from '../../validate/validate.schema'; import { RouterBroker } from '../abstract/abstract.router'; import { InstanceDto } from '../dto/instance.dto'; @@ -8,19 +7,11 @@ import { SettingsDto } from '../dto/settings.dto'; import { settingsController } from '../server.module'; import { HttpStatus } from './index.router'; -const logger = new Logger('SettingsRouter'); - export class SettingsRouter extends RouterBroker { constructor(...guards: RequestHandler[]) { super(); this.router .post(this.routerPath('set'), ...guards, async (req, res) => { - logger.verbose('request received in setSettings'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: settingsSchema, @@ -31,12 +22,6 @@ export class SettingsRouter extends RouterBroker { res.status(HttpStatus.CREATED).json(response); }) .get(this.routerPath('find'), ...guards, async (req, res) => { - logger.verbose('request received in findSettings'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: instanceNameSchema, diff --git a/src/api/routes/webhook.router.ts b/src/api/routes/webhook.router.ts index 1e4ddcac..57c92330 100644 --- a/src/api/routes/webhook.router.ts +++ b/src/api/routes/webhook.router.ts @@ -1,7 +1,6 @@ import { RequestHandler, Router } from 'express'; import { ConfigService, WaBusiness } from '../../config/env.config'; -import { Logger } from '../../config/logger.config'; import { instanceNameSchema, webhookSchema } from '../../validate/validate.schema'; import { RouterBroker } from '../abstract/abstract.router'; import { InstanceDto } from '../dto/instance.dto'; @@ -9,19 +8,11 @@ import { WebhookDto } from '../dto/webhook.dto'; import { webhookController } from '../server.module'; import { HttpStatus } from './index.router'; -const logger = new Logger('WebhookRouter'); - export class WebhookRouter extends RouterBroker { constructor(readonly configService: ConfigService, ...guards: RequestHandler[]) { super(); this.router .post(this.routerPath('set'), ...guards, async (req, res) => { - logger.verbose('request received in setWebhook'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: webhookSchema, @@ -32,12 +23,6 @@ export class WebhookRouter extends RouterBroker { res.status(HttpStatus.CREATED).json(response); }) .get(this.routerPath('find'), ...guards, async (req, res) => { - logger.verbose('request received in findWebhook'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: instanceNameSchema, @@ -48,12 +33,6 @@ export class WebhookRouter extends RouterBroker { res.status(HttpStatus.OK).json(response); }) .post(this.routerPath('whatsapp'), async (req, res) => { - logger.verbose('request received in webhook'); - logger.verbose('request body: '); - logger.verbose(req.body); - - logger.verbose('request query: '); - logger.verbose(req.query); const response = await this.dataValidate({ request: req, schema: instanceNameSchema, @@ -64,13 +43,9 @@ export class WebhookRouter extends RouterBroker { res.status(HttpStatus.OK).json(response); }) .get(this.routerPath('whatsapp'), async (req, res) => { - logger.verbose('request received in webhook'); - logger.verbose('request query: '); - logger.verbose(req.query); if (req.query['hub.verify_token'] === this.configService.get('WA_BUSINESS').TOKEN_WEBHOOK) res.send(req.query['hub.challenge']); else res.send('Error, wrong validation token'); - logger.verbose('Error, wrong validation token'); }); } diff --git a/src/api/services/auth.service.ts b/src/api/services/auth.service.ts index 91b19242..deb702ec 100644 --- a/src/api/services/auth.service.ts +++ b/src/api/services/auth.service.ts @@ -19,8 +19,6 @@ export class AuthService { private async apikey(instance: InstanceDto, token?: string) { const apikey = token ? token : v4().toUpperCase(); - this.logger.verbose(token ? 'APIKEY defined: ' + apikey : 'APIKEY created: ' + apikey); - const db = this.configService.get('DATABASE'); if (db.ENABLED) { @@ -32,8 +30,6 @@ export class AuthService { }, }); - this.logger.verbose('APIKEY saved in database'); - return { apikey }; } catch (error) { this.logger.error({ @@ -48,22 +44,16 @@ export class AuthService { public async checkDuplicateToken(token: string) { const instances = await this.waMonitor.instanceInfo(); - this.logger.verbose('checking duplicate token'); - const instance = instances.find((instance) => instance.instance.apikey === token); if (instance) { throw new BadRequestException('Token already exists'); } - this.logger.verbose('available token'); - return true; } public async generateHash(instance: InstanceDto, token?: string) { - this.logger.verbose('generating hash apiKey to instance: ' + instance.instanceName); - return (await this.apikey(instance, token)) as { apikey: string }; } } diff --git a/src/api/services/cache.service.ts b/src/api/services/cache.service.ts index caf3dbfa..3cd1e87e 100644 --- a/src/api/services/cache.service.ts +++ b/src/api/services/cache.service.ts @@ -8,9 +8,9 @@ export class CacheService { constructor(private readonly cache: ICache) { if (cache) { - this.logger.verbose(`cacheservice created using cache engine: ${cache.constructor?.name}`); + this.logger.info(`cacheservice created using cache engine: ${cache.constructor?.name}`); } else { - this.logger.verbose(`cacheservice disabled`); + this.logger.info(`cacheservice disabled`); } } @@ -18,7 +18,6 @@ export class CacheService { if (!this.cache) { return; } - this.logger.verbose(`cacheservice getting key: ${key}`); return this.cache.get(key); } @@ -41,7 +40,6 @@ export class CacheService { if (!this.cache) { return; } - this.logger.verbose(`cacheservice setting key: ${key}`); this.cache.set(key, value); } @@ -59,7 +57,6 @@ export class CacheService { if (!this.cache) { return; } - this.logger.verbose(`cacheservice has key: ${key}`); return this.cache.has(key); } @@ -67,7 +64,6 @@ export class CacheService { if (!this.cache) { return; } - this.logger.verbose(`cacheservice deleting key: ${key}`); return this.cache.delete(key); } @@ -85,7 +81,6 @@ export class CacheService { if (!this.cache) { return; } - this.logger.verbose(`cacheservice deleting all keys`); return this.cache.deleteAll(appendCriteria); } @@ -93,7 +88,6 @@ export class CacheService { if (!this.cache) { return; } - this.logger.verbose(`cacheservice getting all keys`); return this.cache.keys(appendCriteria); } } diff --git a/src/api/services/channel.service.ts b/src/api/services/channel.service.ts index 750cf8dc..d147dc8c 100644 --- a/src/api/services/channel.service.ts +++ b/src/api/services/channel.service.ts @@ -48,9 +48,7 @@ export class ChannelStartupService { public readonly eventEmitter: EventEmitter2, public readonly prismaRepository: PrismaRepository, public readonly chatwootCache: CacheService, - ) { - this.logger.verbose('ChannelStartupService initialized'); - } + ) {} public readonly logger = new Logger(ChannelStartupService.name); @@ -79,15 +77,11 @@ export class ChannelStartupService { public set instanceName(name: string) { this.logger.setInstance(name); - this.logger.verbose(`Initializing instance '${name}'`); if (!name) { - this.logger.verbose('Instance name not found, generating random name with uuid'); this.instance.name = v4(); return; } this.instance.name = name; - this.logger.verbose(`Instance '${this.instance.name}' initialized`); - this.logger.verbose('Sending instance status to webhook'); this.sendDataWebhook(Events.STATUS_INSTANCE, { instance: this.instance.name, status: 'created', @@ -106,32 +100,26 @@ export class ChannelStartupService { } public get instanceName() { - this.logger.verbose('Getting instance name'); return this.instance.name; } public set instanceId(id: string) { if (!id) { - this.logger.verbose('Instance id not found, generating random id with uuid'); this.instance.id = v4(); return; } - this.logger.verbose(`Setting instanceId: ${id}`); this.instance.id = id; } public get instanceId() { - this.logger.verbose('Getting instanceId'); return this.instance.id; } public get wuid() { - this.logger.verbose('Getting remoteJid of instance'); return this.instance.wuid; } public async loadIntegration() { - this.logger.verbose('Loading webhook'); const data = await this.prismaRepository.integration.findUnique({ where: { instanceId: this.instanceId, @@ -139,19 +127,13 @@ export class ChannelStartupService { }); this.localIntegration.integration = data?.integration; - this.logger.verbose(`Integration: ${this.localIntegration.integration}`); this.localIntegration.number = data?.number; - this.logger.verbose(`Integration number: ${this.localIntegration.number}`); this.localIntegration.token = data?.token; - this.logger.verbose(`Integration token: ${this.localIntegration.token}`); - - this.logger.verbose('Integration loaded'); } public async setIntegration(data: IntegrationDto) { - this.logger.verbose('Setting integration'); console.log('setIntegration'); await this.prismaRepository.integration.upsert({ where: { @@ -170,15 +152,10 @@ export class ChannelStartupService { }, }); - this.logger.verbose(`Integration: ${data.integration}`); - this.logger.verbose(`Integration number: ${data.number}`); - this.logger.verbose(`Integration token: ${data.token}`); Object.assign(this.localIntegration, data); - this.logger.verbose('Integration set'); } public async findIntegration() { - this.logger.verbose('Finding integration'); let data; data = await this.prismaRepository.integration.findUnique({ @@ -199,15 +176,10 @@ export class ChannelStartupService { data = { integration: 'WHATSAPP-BAILEYS', number: '', token: '' }; } - this.logger.verbose(`Integration: ${data.integration}`); - this.logger.verbose(`Integration number: ${data.number}`); - this.logger.verbose(`Integration token: ${data.token}`); - return data; } public async loadSettings() { - this.logger.verbose('Loading settings'); const data = await this.prismaRepository.setting.findUnique({ where: { instanceId: this.instanceId, @@ -215,31 +187,15 @@ export class ChannelStartupService { }); this.localSettings.rejectCall = data?.rejectCall; - this.logger.verbose(`Settings rejectCall: ${this.localSettings.rejectCall}`); - this.localSettings.msgCall = data?.msgCall; - this.logger.verbose(`Settings msgCall: ${this.localSettings.msgCall}`); - this.localSettings.groupsIgnore = data?.groupsIgnore; - this.logger.verbose(`Settings groupsIgnore: ${this.localSettings.groupsIgnore}`); - this.localSettings.alwaysOnline = data?.alwaysOnline; - this.logger.verbose(`Settings alwaysOnline: ${this.localSettings.alwaysOnline}`); - this.localSettings.readMessages = data?.readMessages; - this.logger.verbose(`Settings readMessages: ${this.localSettings.readMessages}`); - this.localSettings.readStatus = data?.readStatus; - this.logger.verbose(`Settings readStatus: ${this.localSettings.readStatus}`); - this.localSettings.syncFullHistory = data?.syncFullHistory; - this.logger.verbose(`Settings syncFullHistory: ${this.localSettings.syncFullHistory}`); - - this.logger.verbose('Settings loaded'); } public async setSettings(data: SettingsDto) { - this.logger.verbose('Setting settings'); await this.prismaRepository.setting.upsert({ where: { instanceId: this.instanceId, @@ -265,19 +221,10 @@ export class ChannelStartupService { }, }); - this.logger.verbose(`Settings rejectCall: ${data.rejectCall}`); - this.logger.verbose(`Settings msgCall: ${data.msgCall}`); - this.logger.verbose(`Settings groupsIgnore: ${data.groupsIgnore}`); - this.logger.verbose(`Settings alwaysOnline: ${data.alwaysOnline}`); - this.logger.verbose(`Settings readMessages: ${data.readMessages}`); - this.logger.verbose(`Settings readStatus: ${data.readStatus}`); - this.logger.verbose(`Settings syncFullHistory: ${data.syncFullHistory}`); Object.assign(this.localSettings, data); - this.logger.verbose('Settings set'); } public async findSettings() { - this.logger.verbose('Finding settings'); const data = await this.prismaRepository.setting.findUnique({ where: { instanceId: this.instanceId, @@ -285,17 +232,9 @@ export class ChannelStartupService { }); if (!data) { - this.logger.verbose('Settings not found'); return null; } - this.logger.verbose(`Settings url: ${data.rejectCall}`); - this.logger.verbose(`Settings msgCall: ${data.msgCall}`); - this.logger.verbose(`Settings groupsIgnore: ${data.groupsIgnore}`); - this.logger.verbose(`Settings alwaysOnline: ${data.alwaysOnline}`); - this.logger.verbose(`Settings readMessages: ${data.readMessages}`); - this.logger.verbose(`Settings readStatus: ${data.readStatus}`); - this.logger.verbose(`Settings syncFullHistory: ${data.syncFullHistory}`); return { rejectCall: data.rejectCall, msgCall: data.msgCall, @@ -308,7 +247,6 @@ export class ChannelStartupService { } public async loadWebhook() { - this.logger.verbose('Loading webhook'); const data = await this.prismaRepository.webhook.findUnique({ where: { instanceId: this.instanceId, @@ -316,25 +254,13 @@ export class ChannelStartupService { }); this.localWebhook.url = data?.url; - this.logger.verbose(`Webhook url: ${this.localWebhook.url}`); - this.localWebhook.enabled = data?.enabled; - this.logger.verbose(`Webhook enabled: ${this.localWebhook.enabled}`); - this.localWebhook.events = data?.events; - this.logger.verbose(`Webhook events: ${this.localWebhook.events}`); - this.localWebhook.webhookByEvents = data?.webhookByEvents; - this.logger.verbose(`Webhook by events: ${this.localWebhook.webhookByEvents}`); - this.localWebhook.webhookBase64 = data?.webhookBase64; - this.logger.verbose(`Webhook by webhookBase64: ${this.localWebhook.webhookBase64}`); - - this.logger.verbose('Webhook loaded'); } public async setWebhook(data: WebhookDto) { - this.logger.verbose('Setting webhook'); await this.prismaRepository.webhook.create({ data: { url: data.url, @@ -346,14 +272,10 @@ export class ChannelStartupService { }, }); - this.logger.verbose(`Webhook url: ${data.url}`); - this.logger.verbose(`Webhook events: ${data.events}`); Object.assign(this.localWebhook, data); - this.logger.verbose('Webhook set'); } public async findWebhook() { - this.logger.verbose('Finding webhook'); const data = await this.prismaRepository.webhook.findUnique({ where: { instanceId: this.instanceId, @@ -361,13 +283,9 @@ export class ChannelStartupService { }); if (!data) { - this.logger.verbose('Webhook not found'); throw new NotFoundException('Webhook not found'); } - this.logger.verbose(`Webhook url: ${data.url}`); - this.logger.verbose(`Webhook events: ${data.events}`); - return data; } @@ -376,7 +294,6 @@ export class ChannelStartupService { return; } - this.logger.verbose('Loading chatwoot'); const data = await this.prismaRepository.chatwoot.findUnique({ where: { instanceId: this.instanceId, @@ -384,57 +301,26 @@ export class ChannelStartupService { }); this.localChatwoot.enabled = data?.enabled; - this.logger.verbose(`Chatwoot enabled: ${this.localChatwoot.enabled}`); - this.localChatwoot.accountId = data?.accountId; - this.logger.verbose(`Chatwoot account id: ${this.localChatwoot.accountId}`); - this.localChatwoot.token = data?.token; - this.logger.verbose(`Chatwoot token: ${this.localChatwoot.token}`); - this.localChatwoot.url = data?.url; - this.logger.verbose(`Chatwoot url: ${this.localChatwoot.url}`); - this.localChatwoot.nameInbox = data?.nameInbox; - this.logger.verbose(`Chatwoot inbox name: ${this.localChatwoot.nameInbox}`); - this.localChatwoot.signMsg = data?.signMsg; - this.logger.verbose(`Chatwoot sign msg: ${this.localChatwoot.signMsg}`); - this.localChatwoot.signDelimiter = data?.signDelimiter; - this.logger.verbose(`Chatwoot sign delimiter: ${this.localChatwoot.signDelimiter}`); - this.localChatwoot.number = data?.number; - this.logger.verbose(`Chatwoot number: ${this.localChatwoot.number}`); - this.localChatwoot.reopenConversation = data?.reopenConversation; - this.logger.verbose(`Chatwoot reopen conversation: ${this.localChatwoot.reopenConversation}`); - this.localChatwoot.conversationPending = data?.conversationPending; - this.logger.verbose(`Chatwoot conversation pending: ${this.localChatwoot.conversationPending}`); - this.localChatwoot.mergeBrazilContacts = data?.mergeBrazilContacts; - this.logger.verbose(`Chatwoot merge brazil contacts: ${this.localChatwoot.mergeBrazilContacts}`); - this.localChatwoot.importContacts = data?.importContacts; - this.logger.verbose(`Chatwoot import contacts: ${this.localChatwoot.importContacts}`); - this.localChatwoot.importMessages = data?.importMessages; - this.logger.verbose(`Chatwoot import messages: ${this.localChatwoot.importMessages}`); - this.localChatwoot.daysLimitImportMessages = data?.daysLimitImportMessages; - this.logger.verbose(`Chatwoot days limit import messages: ${this.localChatwoot.daysLimitImportMessages}`); - - this.logger.verbose('Chatwoot loaded'); } public async setChatwoot(data: ChatwootDto) { if (!this.configService.get('CHATWOOT').ENABLED) { - this.logger.verbose('Chatwoot is not enabled'); return; } - this.logger.verbose('Setting chatwoot'); await this.prismaRepository.chatwoot.create({ data: { enabled: data.enabled, @@ -454,33 +340,16 @@ export class ChannelStartupService { }, }); - this.logger.verbose(`Chatwoot account id: ${data.accountId}`); - this.logger.verbose(`Chatwoot token: ${data.token}`); - this.logger.verbose(`Chatwoot url: ${data.url}`); - this.logger.verbose(`Chatwoot inbox name: ${data.nameInbox}`); - this.logger.verbose(`Chatwoot sign msg: ${data.signMsg}`); - this.logger.verbose(`Chatwoot sign delimiter: ${data.signDelimiter}`); - this.logger.verbose(`Chatwoot reopen conversation: ${data.reopenConversation}`); - this.logger.verbose(`Chatwoot conversation pending: ${data.conversationPending}`); - this.logger.verbose(`Chatwoot merge brazil contacts: ${data.mergeBrazilContacts}`); - this.logger.verbose(`Chatwoot import contacts: ${data.importContacts}`); - this.logger.verbose(`Chatwoot import messages: ${data.importMessages}`); - this.logger.verbose(`Chatwoot days limit import messages: ${data.daysLimitImportMessages}`); - Object.assign(this.localChatwoot, { ...data, signDelimiter: data.signMsg ? data.signDelimiter : null }); this.clearCacheChatwoot(); - - this.logger.verbose('Chatwoot set'); } public async findChatwoot() { if (!this.configService.get('CHATWOOT').ENABLED) { - this.logger.verbose('Chatwoot is not enabled'); return null; } - this.logger.verbose('Finding chatwoot'); const data = await this.prismaRepository.chatwoot.findUnique({ where: { instanceId: this.instanceId, @@ -488,23 +357,9 @@ export class ChannelStartupService { }); if (!data) { - this.logger.verbose('Chatwoot not found'); return null; } - this.logger.verbose(`Chatwoot account id: ${data.accountId}`); - this.logger.verbose(`Chatwoot token: ${data.token}`); - this.logger.verbose(`Chatwoot url: ${data.url}`); - this.logger.verbose(`Chatwoot inbox name: ${data.nameInbox}`); - this.logger.verbose(`Chatwoot sign msg: ${data.signMsg}`); - this.logger.verbose(`Chatwoot sign delimiter: ${data.signDelimiter}`); - this.logger.verbose(`Chatwoot reopen conversation: ${data.reopenConversation}`); - this.logger.verbose(`Chatwoot conversation pending: ${data.conversationPending}`); - this.logger.verbose(`Chatwoot merge brazilian contacts: ${data.mergeBrazilContacts}`); - this.logger.verbose(`Chatwoot import contacts: ${data.importContacts}`); - this.logger.verbose(`Chatwoot import messages: ${data.importMessages}`); - this.logger.verbose(`Chatwoot days limit import messages: ${data.daysLimitImportMessages}`); - return { enabled: data.enabled, accountId: data.accountId, @@ -523,15 +378,12 @@ export class ChannelStartupService { } public clearCacheChatwoot() { - this.logger.verbose('Removing cache from chatwoot'); - if (this.localChatwoot.enabled) { this.chatwootService.getCache()?.deleteAll(this.instanceName); } } public async loadWebsocket() { - this.logger.verbose('Loading websocket'); const data = await this.prismaRepository.websocket.findUnique({ where: { instanceId: this.instanceId, @@ -539,16 +391,10 @@ export class ChannelStartupService { }); this.localWebsocket.enabled = data?.enabled; - this.logger.verbose(`Websocket enabled: ${this.localWebsocket.enabled}`); - this.localWebsocket.events = data?.events; - this.logger.verbose(`Websocket events: ${this.localWebsocket.events}`); - - this.logger.verbose('Websocket loaded'); } public async setWebsocket(data: WebsocketDto) { - this.logger.verbose('Setting websocket'); await this.prismaRepository.websocket.create({ data: { enabled: data.enabled, @@ -557,13 +403,10 @@ export class ChannelStartupService { }, }); - this.logger.verbose(`Websocket events: ${data.events}`); Object.assign(this.localWebsocket, data); - this.logger.verbose('Websocket set'); } public async findWebsocket() { - this.logger.verbose('Finding websocket'); const data = await this.prismaRepository.websocket.findUnique({ where: { instanceId: this.instanceId, @@ -571,16 +414,13 @@ export class ChannelStartupService { }); if (!data) { - this.logger.verbose('Websocket not found'); throw new NotFoundException('Websocket not found'); } - this.logger.verbose(`Websocket events: ${data.events}`); return data; } public async loadRabbitmq() { - this.logger.verbose('Loading rabbitmq'); const data = await this.prismaRepository.rabbitmq.findUnique({ where: { instanceId: this.instanceId, @@ -588,16 +428,10 @@ export class ChannelStartupService { }); this.localRabbitmq.enabled = data?.enabled; - this.logger.verbose(`Rabbitmq enabled: ${this.localRabbitmq.enabled}`); - this.localRabbitmq.events = data?.events; - this.logger.verbose(`Rabbitmq events: ${this.localRabbitmq.events}`); - - this.logger.verbose('Rabbitmq loaded'); } public async setRabbitmq(data: RabbitmqDto) { - this.logger.verbose('Setting rabbitmq'); await this.prismaRepository.rabbitmq.create({ data: { enabled: data.enabled, @@ -606,13 +440,10 @@ export class ChannelStartupService { }, }); - this.logger.verbose(`Rabbitmq events: ${data.events}`); Object.assign(this.localRabbitmq, data); - this.logger.verbose('Rabbitmq set'); } public async findRabbitmq() { - this.logger.verbose('Finding rabbitmq'); const data = await this.prismaRepository.rabbitmq.findUnique({ where: { instanceId: this.instanceId, @@ -620,24 +451,19 @@ export class ChannelStartupService { }); if (!data) { - this.logger.verbose('Rabbitmq not found'); throw new NotFoundException('Rabbitmq not found'); } - this.logger.verbose(`Rabbitmq events: ${data.events}`); return data; } public async removeRabbitmqQueues() { - this.logger.verbose('Removing rabbitmq'); - if (this.localRabbitmq.enabled) { removeQueues(this.instanceName, this.localRabbitmq.events); } } public async loadSqs() { - this.logger.verbose('Loading sqs'); const data = await this.prismaRepository.sqs.findUnique({ where: { instanceId: this.instanceId, @@ -645,16 +471,10 @@ export class ChannelStartupService { }); this.localSqs.enabled = data?.enabled; - this.logger.verbose(`Sqs enabled: ${this.localSqs.enabled}`); - this.localSqs.events = data?.events; - this.logger.verbose(`Sqs events: ${this.localSqs.events}`); - - this.logger.verbose('Sqs loaded'); } public async setSqs(data: SqsDto) { - this.logger.verbose('Setting sqs'); await this.prismaRepository.sqs.create({ data: { enabled: data.enabled, @@ -663,13 +483,10 @@ export class ChannelStartupService { }, }); - this.logger.verbose(`Sqs events: ${data.events}`); Object.assign(this.localSqs, data); - this.logger.verbose('Sqs set'); } public async findSqs() { - this.logger.verbose('Finding sqs'); const data = await this.prismaRepository.sqs.findUnique({ where: { instanceId: this.instanceId, @@ -677,17 +494,13 @@ export class ChannelStartupService { }); if (!data) { - this.logger.verbose('Sqs not found'); throw new NotFoundException('Sqs not found'); } - this.logger.verbose(`Sqs events: ${data.events}`); return data; } public async removeSqsQueues() { - this.logger.verbose('Removing sqs'); - if (this.localSqs.enabled) { removeQueuesSQS(this.instanceName, this.localSqs.events); } @@ -697,7 +510,6 @@ export class ChannelStartupService { if (!this.configService.get('TYPEBOT').ENABLED) { return; } - this.logger.verbose('Loading typebot'); const data = await this.prismaRepository.typebot.findUnique({ where: { instanceId: this.instanceId, @@ -708,40 +520,20 @@ export class ChannelStartupService { }); this.localTypebot.enabled = data?.enabled; - this.logger.verbose(`Typebot enabled: ${this.localTypebot.enabled}`); - this.localTypebot.url = data?.url; - this.logger.verbose(`Typebot url: ${this.localTypebot.url}`); - this.localTypebot.typebot = data?.typebot; - this.logger.verbose(`Typebot typebot: ${this.localTypebot.typebot}`); - this.localTypebot.expire = data?.expire; - this.logger.verbose(`Typebot expire: ${this.localTypebot.expire}`); - this.localTypebot.keywordFinish = data?.keywordFinish; - this.logger.verbose(`Typebot keywordFinish: ${this.localTypebot.keywordFinish}`); - this.localTypebot.delayMessage = data?.delayMessage; - this.logger.verbose(`Typebot delayMessage: ${this.localTypebot.delayMessage}`); - this.localTypebot.unknownMessage = data?.unknownMessage; - this.logger.verbose(`Typebot unknownMessage: ${this.localTypebot.unknownMessage}`); - this.localTypebot.listeningFromMe = data?.listeningFromMe; - this.logger.verbose(`Typebot listeningFromMe: ${this.localTypebot.listeningFromMe}`); - this.localTypebot.sessions = data?.sessions; - - this.logger.verbose('Typebot loaded'); } public async setTypebot(data: TypebotDto) { if (!this.configService.get('TYPEBOT').ENABLED) { - this.logger.verbose('Typebot is not enabled'); return; } - this.logger.verbose('Setting typebot'); const typebot = await this.prismaRepository.typebot.create({ data: { @@ -763,22 +555,13 @@ export class ChannelStartupService { }, }); - this.logger.verbose(`Typebot typebot: ${data.typebot}`); - this.logger.verbose(`Typebot expire: ${data.expire}`); - this.logger.verbose(`Typebot keywordFinish: ${data.keywordFinish}`); - this.logger.verbose(`Typebot delayMessage: ${data.delayMessage}`); - this.logger.verbose(`Typebot unknownMessage: ${data.unknownMessage}`); - this.logger.verbose(`Typebot listeningFromMe: ${data.listeningFromMe}`); Object.assign(this.localTypebot, data); - this.logger.verbose('Typebot set'); } public async findTypebot() { if (!this.configService.get('TYPEBOT').ENABLED) { - this.logger.verbose('Typebot is not enabled'); return; } - this.logger.verbose('Finding typebot'); const data = await this.prismaRepository.typebot.findUnique({ where: { instanceId: this.instanceId, @@ -789,7 +572,6 @@ export class ChannelStartupService { }); if (!data) { - this.logger.verbose('Typebot not found'); throw new NotFoundException('Typebot not found'); } @@ -807,7 +589,6 @@ export class ChannelStartupService { } public async loadProxy() { - this.logger.verbose('Loading proxy'); const data = await this.prismaRepository.proxy.findUnique({ where: { instanceId: this.instanceId, @@ -815,28 +596,14 @@ export class ChannelStartupService { }); this.localProxy.enabled = data?.enabled; - this.logger.verbose(`Proxy enabled: ${this.localProxy.enabled}`); - this.localProxy.host = data?.host; - this.logger.verbose(`Proxy host: ${this.localProxy.host}`); - this.localProxy.port = data?.port; - this.logger.verbose(`Proxy port: ${this.localProxy.port}`); - this.localProxy.protocol = data?.protocol; - this.logger.verbose(`Proxy protocol: ${this.localProxy.protocol}`); - this.localProxy.username = data?.username; - this.logger.verbose(`Proxy username: ${this.localProxy.username}`); - this.localProxy.password = data?.password; - this.logger.verbose(`Proxy password: ${this.localProxy.password}`); - - this.logger.verbose('Proxy loaded'); } public async setProxy(data: ProxyDto) { - this.logger.verbose('Setting proxy'); await this.prismaRepository.proxy.create({ data: { enabled: data.enabled, @@ -849,13 +616,10 @@ export class ChannelStartupService { }, }); - this.logger.verbose(`Proxy proxy: ${data.host}`); Object.assign(this.localProxy, data); - this.logger.verbose('Proxy set'); } public async findProxy() { - this.logger.verbose('Finding proxy'); const data = await this.prismaRepository.proxy.findUnique({ where: { instanceId: this.instanceId, @@ -863,7 +627,6 @@ export class ChannelStartupService { }); if (!data) { - this.logger.verbose('Proxy not found'); throw new NotFoundException('Proxy not found'); } @@ -1098,7 +861,6 @@ export class ChannelStartupService { } if (this.configService.get('WEBSOCKET')?.ENABLED) { - this.logger.verbose('Sending data to websocket on channel: ' + this.instance.name); const io = getIO(); const message = { @@ -1138,9 +900,6 @@ export class ChannelStartupService { } if (this.localWebsocket.enabled && Array.isArray(websocketLocal) && websocketLocal.includes(we)) { - this.logger.verbose('Sending data to websocket on event: ' + event); - - this.logger.verbose('Sending data to socket.io in channel: ' + this.instance.name); io.of(`/${this.instance.name}`).emit(event, message); if (this.configService.get('WEBSOCKET')?.GLOBAL_EVENTS) { @@ -1172,7 +931,6 @@ export class ChannelStartupService { if (local) { if (Array.isArray(webhookLocal) && webhookLocal.includes(we)) { - this.logger.verbose('Sending data to webhook local'); let baseURL: string; if (this.localWebhook.webhookByEvents) { @@ -1240,7 +998,6 @@ export class ChannelStartupService { if (webhookGlobal.GLOBAL?.ENABLED) { if (webhookGlobal.EVENTS[we]) { - this.logger.verbose('Sending data to webhook global'); const globalWebhook = this.configService.get('WEBHOOK').GLOBAL; let globalURL; @@ -1311,11 +1068,9 @@ export class ChannelStartupService { } public cleanStore() { - this.logger.verbose('Cronjob to clean store initialized'); const cleanStore = this.configService.get('CLEAN_STORE'); const database = this.configService.get('DATABASE'); if (cleanStore?.CLEANING_INTERVAL && !database.ENABLED) { - this.logger.verbose('Cronjob to clean store enabled'); setInterval(() => { try { for (const [key, value] of Object.entries(cleanStore)) { @@ -1323,9 +1078,6 @@ export class ChannelStartupService { execSync( `rm -rf ${join(this.storePath, key.toLowerCase().replace('_', '-'), this.instance.name)}/*.json`, ); - this.logger.verbose( - `Cleaned ${join(this.storePath, key.toLowerCase().replace('_', '-'), this.instance.name)}/*.json`, - ); } } } catch (error) { @@ -1370,15 +1122,11 @@ export class ChannelStartupService { } public createJid(number: string): string { - this.logger.verbose('Creating jid with number: ' + number); - if (number.includes('@g.us') || number.includes('@s.whatsapp.net') || number.includes('@lid')) { - this.logger.verbose('Number already contains @g.us or @s.whatsapp.net or @lid'); return number; } if (number.includes('@broadcast')) { - this.logger.verbose('Number already contains @broadcast'); return number; } @@ -1391,7 +1139,6 @@ export class ChannelStartupService { .split('@')[0]; if (number.includes('-') && number.length >= 24) { - this.logger.verbose('Jid created is group: ' + `${number}@g.us`); number = number.replace(/[^\d-]/g, ''); return `${number}@g.us`; } @@ -1399,7 +1146,6 @@ export class ChannelStartupService { number = number.replace(/\D/g, ''); if (number.length >= 18) { - this.logger.verbose('Jid created is group: ' + `${number}@g.us`); number = number.replace(/[^\d-]/g, ''); return `${number}@g.us`; } @@ -1408,12 +1154,10 @@ export class ChannelStartupService { number = this.formatBRNumber(number); - this.logger.verbose('Jid created is whatsapp: ' + `${number}@s.whatsapp.net`); return `${number}@s.whatsapp.net`; } public async fetchContacts(query: any) { - this.logger.verbose('Fetching contacts'); if (query?.where) { query.where.remoteJid = this.instance.name; if (query.where?.remoteJid) { @@ -1432,7 +1176,6 @@ export class ChannelStartupService { } public async fetchMessages(query: any) { - this.logger.verbose('Fetching messages'); if (query?.where) { if (query.where?.key?.remoteJid) { query.where.key.remoteJid = this.createJid(query.where.key.remoteJid); @@ -1450,7 +1193,6 @@ export class ChannelStartupService { } public async fetchStatusMessage(query: any) { - this.logger.verbose('Fetching status messages'); if (query?.where) { if (query.where?.remoteJid) { query.where.remoteJid = this.createJid(query.where.remoteJid); @@ -1468,7 +1210,6 @@ export class ChannelStartupService { } public async fetchChats() { - this.logger.verbose('Fetching chats'); return await this.prismaRepository.chat.findMany({ where: { instanceId: this.instanceId } }); } } diff --git a/src/api/services/channels/whatsapp.baileys.service.ts b/src/api/services/channels/whatsapp.baileys.service.ts index 82dd330b..40430198 100644 --- a/src/api/services/channels/whatsapp.baileys.service.ts +++ b/src/api/services/channels/whatsapp.baileys.service.ts @@ -140,7 +140,6 @@ export class BaileysStartupService extends ChannelStartupService { private readonly providerFiles: ProviderFiles, ) { super(configService, eventEmitter, prismaRepository, chatwootCache); - this.logger.verbose('BaileysStartupService initialized'); this.cleanStore(); this.instance.qrcode = { count: 0 }; this.recoveringMessages(); @@ -194,7 +193,6 @@ export class BaileysStartupService extends ChannelStartupService { } private async forceUpdateGroupMetadataCache() { - this.logger.verbose('Forcing update group metadata cache'); const groups = await this.fetchAllGroups({ getParticipants: 'false' }); for (const group of groups) { @@ -203,38 +201,28 @@ export class BaileysStartupService extends ChannelStartupService { } public get connectionStatus() { - this.logger.verbose('Getting connection status'); return this.stateConnection; } public async logoutInstance() { - this.logger.verbose('logging out instance: ' + this.instanceName); await this.client?.logout('Log out instance: ' + this.instanceName); - this.logger.verbose('close connection instance: ' + this.instanceName); this.client?.ws?.close(); } public async getProfileName() { - this.logger.verbose('Getting profile name'); - let profileName = this.client.user?.name ?? this.client.user?.verifiedName; if (!profileName) { - this.logger.verbose('Profile name not found, trying to get from database'); if (this.configService.get('DATABASE').ENABLED) { - this.logger.verbose('Database enabled, trying to get from database'); - const data = await this.prismaRepository.session.findUnique({ where: { sessionId: this.instanceId }, }); if (data) { - this.logger.verbose('Profile name found in database'); const creds = JSON.parse(JSON.stringify(data.creds), BufferJSON.reviver); profileName = creds.me?.name || creds.me?.verifiedName; } } else if (existsSync(join(INSTANCE_DIR, this.instanceName, 'creds.json'))) { - this.logger.verbose('Profile name found in file'); const creds = JSON.parse( readFileSync(join(INSTANCE_DIR, this.instanceName, 'creds.json'), { encoding: 'utf-8', @@ -244,26 +232,20 @@ export class BaileysStartupService extends ChannelStartupService { } } - this.logger.verbose(`Profile name: ${profileName}`); return profileName; } public async getProfileStatus() { - this.logger.verbose('Getting profile status'); const status = await this.client.fetchStatus(this.instance.wuid); - this.logger.verbose(`Profile status: ${status.status}`); return status.status; } public get profilePictureUrl() { - this.logger.verbose('Getting profile picture url'); return this.instance.profilePictureUrl; } public get qrCode(): wa.QrCode { - this.logger.verbose('Getting qrcode'); - return { pairingCode: this.instance.qrcode?.pairingCode, code: this.instance.qrcode?.code, @@ -273,13 +255,8 @@ export class BaileysStartupService extends ChannelStartupService { } private async connectionUpdate({ qr, connection, lastDisconnect }: Partial) { - this.logger.verbose('Connection update'); if (qr) { - this.logger.verbose('QR code found'); if (this.instance.qrcode.count === this.configService.get('QRCODE').LIMIT) { - this.logger.verbose('QR code limit reached'); - - this.logger.verbose('Sending data to webhook in event QRCODE_UPDATED'); this.sendDataWebhook(Events.QRCODE_UPDATED, { message: 'QR code limit reached, please login again', statusCode: DisconnectReason.badSession, @@ -296,21 +273,17 @@ export class BaileysStartupService extends ChannelStartupService { ); } - this.logger.verbose('Sending data to webhook in event CONNECTION_UPDATE'); this.sendDataWebhook(Events.CONNECTION_UPDATE, { instance: this.instance.name, state: 'refused', statusReason: DisconnectReason.connectionClosed, }); - this.logger.verbose('endSession defined as true'); this.endSession = true; - this.logger.verbose('Emmiting event logout.instance'); return this.eventEmitter.emit('no.connection', this.instance.name); } - this.logger.verbose('Incrementing QR code count'); this.instance.qrcode.count++; const color = this.configService.get('QRCODE').COLOR; @@ -329,7 +302,6 @@ export class BaileysStartupService extends ChannelStartupService { this.instance.qrcode.pairingCode = null; } - this.logger.verbose('Generating QR code'); qrcode.toDataURL(qr, optsQrcode, (error, base64) => { if (error) { this.logger.error('Qrcode generate failed:' + error.toString()); @@ -364,7 +336,6 @@ export class BaileysStartupService extends ChannelStartupService { } }); - this.logger.verbose('Generating QR code in terminal'); 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` + @@ -374,13 +345,11 @@ export class BaileysStartupService extends ChannelStartupService { } if (connection) { - this.logger.verbose('Connection found'); this.stateConnection = { state: connection, statusReason: (lastDisconnect?.error as Boom)?.output?.statusCode ?? 200, }; - this.logger.verbose('Sending data to webhook in event CONNECTION_UPDATE'); this.sendDataWebhook(Events.CONNECTION_UPDATE, { instance: this.instance.name, ...this.stateConnection, @@ -388,14 +357,10 @@ export class BaileysStartupService extends ChannelStartupService { } if (connection === 'close') { - this.logger.verbose('Connection closed'); const shouldReconnect = (lastDisconnect.error as Boom)?.output?.statusCode !== DisconnectReason.loggedOut; if (shouldReconnect) { - this.logger.verbose('Reconnecting to whatsapp'); await this.connectToWhatsapp(); } else { - this.logger.verbose('Do not reconnect to whatsapp'); - this.logger.verbose('Sending data to webhook in event STATUS_INSTANCE'); this.sendDataWebhook(Events.STATUS_INSTANCE, { instance: this.instance.name, status: 'closed', @@ -412,16 +377,13 @@ export class BaileysStartupService extends ChannelStartupService { ); } - this.logger.verbose('Emittin event logout.instance'); this.eventEmitter.emit('logout.instance', this.instance.name, 'inner'); this.client?.ws?.close(); this.client.end(new Error('Close connection')); - this.logger.verbose('Connection closed'); } } if (connection === 'open') { - this.logger.verbose('Connection opened'); this.instance.wuid = this.client.user.id.replace(/:\d+/, ''); this.instance.profilePictureUrl = (await this.profilePicture(this.instance.wuid)).profilePictureUrl; const formattedWuid = this.instance.wuid.split('@')[0].padEnd(30, ' '); @@ -453,7 +415,6 @@ export class BaileysStartupService extends ChannelStartupService { } private async getMessage(key: proto.IMessageKey, full = false) { - this.logger.verbose('Getting message with key: ' + JSON.stringify(key)); try { const webMessageInfo = (await this.prismaRepository.message.findFirst({ where: { @@ -465,11 +426,9 @@ export class BaileysStartupService extends ChannelStartupService { }, })) as unknown as proto.IWebMessageInfo[]; if (full) { - this.logger.verbose('Returning full message'); return webMessageInfo[0]; } if (webMessageInfo[0].message?.pollCreationMessage) { - this.logger.verbose('Returning poll message'); const messageSecretBase64 = webMessageInfo[0].message?.messageContextInfo?.messageSecret; if (typeof messageSecretBase64 === 'string') { @@ -486,7 +445,6 @@ export class BaileysStartupService extends ChannelStartupService { } } - this.logger.verbose('Returning message'); return webMessageInfo[0].message; } catch (error) { return { conversation: '' }; @@ -494,7 +452,6 @@ export class BaileysStartupService extends ChannelStartupService { } private async defineAuthState() { - this.logger.verbose('Defining auth state'); const db = this.configService.get('DATABASE'); const cache = this.configService.get('CACHE'); @@ -510,16 +467,13 @@ export class BaileysStartupService extends ChannelStartupService { } if (db.SAVE_DATA.INSTANCE && db.ENABLED) { - this.logger.verbose('Database enabled'); return await useMultiFileAuthStatePrisma(this.instanceId); } - this.logger.verbose('Store file enabled'); return await useMultiFileAuthState(join(INSTANCE_DIR, this.instance.name)); } public async connectToWhatsapp(number?: string): Promise { - this.logger.verbose('Connecting to whatsapp'); try { this.loadWebhook(); this.loadChatwoot(); @@ -534,7 +488,6 @@ export class BaileysStartupService extends ChannelStartupService { const session = this.configService.get('CONFIG_SESSION_PHONE'); const browser: WABrowserDescription = [session.CLIENT, session.NAME, release()]; - this.logger.verbose('Browser: ' + JSON.stringify(browser)); let version; let log; @@ -642,16 +595,10 @@ export class BaileysStartupService extends ChannelStartupService { this.endSession = false; - this.logger.verbose('Creating socket'); - this.client = makeWASocket(socketConfig); - this.logger.verbose('Socket created'); - this.eventHandler(); - this.logger.verbose('Socket event handler initialized'); - this.phoneNumber = number; return this.client; @@ -783,9 +730,6 @@ export class BaileysStartupService extends ChannelStartupService { private readonly chatHandle = { 'chats.upsert': async (chats: Chat[]) => { - this.logger.verbose('Event received: chats.upsert'); - - this.logger.verbose('Finding existing chat IDs in the database'); const existingChatIds = await this.prismaRepository.chat.findMany({ where: { instanceId: this.instanceId }, select: { remoteJid: true }, @@ -793,16 +737,13 @@ export class BaileysStartupService extends ChannelStartupService { const existingChatIdSet = new Set(existingChatIds.map((chat) => chat.remoteJid)); - this.logger.verbose('Verifying if chats exist in the database to insert'); const chatsToInsert = chats .filter((chat) => !existingChatIdSet.has(chat.id)) .map((chat) => ({ remoteJid: chat.id, instanceId: this.instanceId })); - this.logger.verbose('Sending data to webhook in event CHATS_UPSERT'); this.sendDataWebhook(Events.CHATS_UPSERT, chatsToInsert); if (chatsToInsert.length > 0) { - this.logger.verbose('Inserting new chats in the database'); await this.prismaRepository.chat.createMany({ data: chatsToInsert, }); @@ -818,16 +759,12 @@ export class BaileysStartupService extends ChannelStartupService { } >[], ) => { - this.logger.verbose('Event received: chats.update'); const chatsRaw = chats.map((chat) => { return { remoteJid: chat.id, instanceId: this.instanceId }; }); - this.logger.verbose('Sending data to webhook in event CHATS_UPDATE'); this.sendDataWebhook(Events.CHATS_UPDATE, chatsRaw); - this.logger.verbose('Updating chats in the database'); - for (const chat of chats) { await this.prismaRepository.chat.updateMany({ where: { @@ -842,9 +779,6 @@ export class BaileysStartupService extends ChannelStartupService { }, 'chats.delete': async (chats: string[]) => { - this.logger.verbose('Event received: chats.delete'); - - this.logger.verbose('Deleting chats in database'); chats.forEach( async (chat) => await this.prismaRepository.chat.deleteMany({ @@ -852,7 +786,6 @@ export class BaileysStartupService extends ChannelStartupService { }), ); - this.logger.verbose('Sending data to webhook in event CHATS_DELETE'); this.sendDataWebhook(Events.CHATS_DELETE, [...chats]); }, }; @@ -860,8 +793,6 @@ export class BaileysStartupService extends ChannelStartupService { private readonly contactHandle = { 'contacts.upsert': async (contacts: Contact[]) => { try { - this.logger.verbose('Event received: contacts.upsert'); - const contactsRaw: any = contacts.map((contact) => ({ remoteJid: contact.id, pushName: contact?.name || contact?.verifiedName || contact.id.split('@')[0], @@ -869,10 +800,8 @@ export class BaileysStartupService extends ChannelStartupService { instanceId: this.instanceId, })); - this.logger.verbose('Sending data to webhook in event CONTACTS_UPSERT'); if (contactsRaw.length > 0) this.sendDataWebhook(Events.CONTACTS_UPSERT, contactsRaw); - this.logger.verbose('Inserting contacts in database'); if (contactsRaw.length > 0) { await this.prismaRepository.contact.createMany({ data: contactsRaw, @@ -890,7 +819,6 @@ export class BaileysStartupService extends ChannelStartupService { chatwootImport.importHistoryContacts({ instanceName: this.instance.name }, this.localChatwoot); } - this.logger.verbose('Updating profile pictures'); const updatedContacts = await Promise.all( contacts.map(async (contact) => ({ remoteJid: contact.id, @@ -900,10 +828,8 @@ export class BaileysStartupService extends ChannelStartupService { })), ); - this.logger.verbose('Sending data to webhook in event CONTACTS_UPDATE'); if (updatedContacts.length > 0) this.sendDataWebhook(Events.CONTACTS_UPDATE, updatedContacts); - this.logger.verbose('Updating contacts in database'); if (updatedContacts.length > 0) { await Promise.all( updatedContacts.map((contact) => @@ -922,9 +848,6 @@ export class BaileysStartupService extends ChannelStartupService { }, 'contacts.update': async (contacts: Partial[]) => { - this.logger.verbose('Event received: contacts.update'); - - this.logger.verbose('Verifying if contacts exists in database to update'); const contactsRaw: any = []; for await (const contact of contacts) { contactsRaw.push({ @@ -935,10 +858,8 @@ export class BaileysStartupService extends ChannelStartupService { }); } - this.logger.verbose('Sending data to webhook in event CONTACTS_UPDATE'); this.sendDataWebhook(Events.CONTACTS_UPDATE, contactsRaw); - this.logger.verbose('Updating contacts in database'); this.prismaRepository.contact.updateMany({ where: { instanceId: this.instanceId }, data: contactsRaw, @@ -958,15 +879,12 @@ export class BaileysStartupService extends ChannelStartupService { isLatest: boolean; }) => { try { - this.logger.verbose('Event received: messaging-history.set'); - const instance: InstanceDto = { instanceName: this.instance.name }; const daysLimitToImport = this.configService.get('CHATWOOT').ENABLED && this.localChatwoot.enabled ? this.localChatwoot.daysLimitImportMessages : 1000; - this.logger.verbose(`Param days limit import messages is: ${daysLimitToImport}`); const date = new Date(); const timestampLimitToImport = new Date(date.setDate(date.getDate() - daysLimitToImport)).getTime() / 1000; @@ -976,7 +894,6 @@ export class BaileysStartupService extends ChannelStartupService { const processBatch = maxBatchTimestamp >= timestampLimitToImport; if (!processBatch) { - this.logger.verbose('Batch ignored by maxTimestamp in this batch'); return; } @@ -1001,10 +918,8 @@ export class BaileysStartupService extends ChannelStartupService { }); } - this.logger.verbose('Sending data to webhook in event CHATS_SET'); this.sendDataWebhook(Events.CHATS_SET, chatsRaw); - this.logger.verbose('Inserting chats in database'); this.prismaRepository.chat.createMany({ data: chatsRaw, skipDuplicates: true, @@ -1073,10 +988,8 @@ export class BaileysStartupService extends ChannelStartupService { }); } - this.logger.verbose('Sending data to webhook in event MESSAGES_SET'); this.sendDataWebhook(Events.MESSAGES_SET, [...messagesRaw]); - this.logger.verbose('Inserting messages in database'); this.prismaRepository.message.createMany({ data: messagesRaw, skipDuplicates: true, @@ -1122,7 +1035,6 @@ export class BaileysStartupService extends ChannelStartupService { settings: any, ) => { try { - this.logger.verbose('Event received: messages.upsert'); for (const received of messages) { if ( this.configService.get('CHATWOOT').ENABLED && @@ -1156,7 +1068,6 @@ export class BaileysStartupService extends ChannelStartupService { received.message?.pollUpdateMessage || !received?.message ) { - this.logger.verbose('message rejected'); return; } @@ -1165,7 +1076,6 @@ export class BaileysStartupService extends ChannelStartupService { } if (settings?.groupsIgnore && received.key.remoteJid.includes('@g.us')) { - this.logger.verbose('group ignored'); return; } @@ -1227,7 +1137,6 @@ export class BaileysStartupService extends ChannelStartupService { this.logger.log(messageRaw); - this.logger.verbose('Sending data to webhook in event MESSAGES_UPSERT'); this.sendDataWebhook(Events.MESSAGES_UPSERT, messageRaw); if ( @@ -1267,12 +1176,10 @@ export class BaileysStartupService extends ChannelStartupService { } } - this.logger.verbose('Inserting message in database'); await this.prismaRepository.message.create({ data: messageRaw, }); - this.logger.verbose('Verifying contact from message'); const contact = await this.prismaRepository.contact.findFirst({ where: { remoteJid: received.key.remoteJid, instanceId: this.instanceId }, }); @@ -1285,12 +1192,10 @@ export class BaileysStartupService extends ChannelStartupService { }; if (contactRaw.id === 'status@broadcast') { - this.logger.verbose('Contact is status@broadcast'); return; } if (contact) { - this.logger.verbose('Contact found in database'); const contactRaw: any = { remoteJid: received.key.remoteJid, pushName: contact.pushName, @@ -1298,7 +1203,6 @@ export class BaileysStartupService extends ChannelStartupService { instanceId: this.instanceId, }; - this.logger.verbose('Sending data to webhook in event CONTACTS_UPDATE'); this.sendDataWebhook(Events.CONTACTS_UPDATE, contactRaw); if (this.configService.get('CHATWOOT').ENABLED && this.localChatwoot.enabled) { @@ -1309,7 +1213,6 @@ export class BaileysStartupService extends ChannelStartupService { ); } - this.logger.verbose('Updating contact in database'); this.prismaRepository.contact.updateMany({ where: { remoteJid: received.key.remoteJid, instanceId: this.instanceId }, data: contactRaw, @@ -1317,12 +1220,8 @@ export class BaileysStartupService extends ChannelStartupService { return; } - this.logger.verbose('Contact not found in database'); - - this.logger.verbose('Sending data to webhook in event CONTACTS_UPSERT'); this.sendDataWebhook(Events.CONTACTS_UPSERT, contactRaw); - this.logger.verbose('Inserting contact in database'); await this.prismaRepository.contact.create({ data: contactRaw, }); @@ -1333,7 +1232,6 @@ export class BaileysStartupService extends ChannelStartupService { }, 'messages.update': async (args: WAMessageUpdate[], settings: any) => { - this.logger.verbose('Event received: messages.update'); const status: Record = { 0: 'ERROR', 1: 'PENDING', @@ -1344,7 +1242,6 @@ export class BaileysStartupService extends ChannelStartupService { }; for await (const { key, update } of args) { if (settings?.groupsIgnore && key.remoteJid?.includes('@g.us')) { - this.logger.verbose('group ignored'); return; } @@ -1355,18 +1252,11 @@ export class BaileysStartupService extends ChannelStartupService { } if (key.remoteJid !== 'status@broadcast') { - this.logger.verbose('Message update is valid'); - let pollUpdates: any; if (update.pollUpdates) { - this.logger.verbose('Poll update found'); - - this.logger.verbose('Getting poll message'); const pollCreation = await this.getMessage(key); - this.logger.verbose(pollCreation); if (pollCreation) { - this.logger.verbose('Getting aggregate votes in poll message'); pollUpdates = getAggregateVotesInPollMessage({ message: pollCreation as proto.IMessage, pollUpdates: update.pollUpdates, @@ -1385,16 +1275,12 @@ export class BaileysStartupService extends ChannelStartupService { }); if (!findMessage) { - this.logger.verbose('Message not found in database'); return; } if (status[update.status] === 'READ' && !key.fromMe) return; if (update.message === null && update.status === undefined) { - this.logger.verbose('Message deleted'); - - this.logger.verbose('Sending data to webhook in event MESSAGE_DELETE'); this.sendDataWebhook(Events.MESSAGES_DELETE, key); const message: any = { @@ -1408,9 +1294,6 @@ export class BaileysStartupService extends ChannelStartupService { instanceId: this.instanceId, }; - this.logger.verbose(message); - - this.logger.verbose('Inserting message in database'); await this.prismaRepository.messageUpdate.create({ data: message, }); @@ -1438,12 +1321,8 @@ export class BaileysStartupService extends ChannelStartupService { instanceId: this.instanceId, }; - this.logger.verbose(message); - - this.logger.verbose('Sending data to webhook in event MESSAGES_UPDATE'); this.sendDataWebhook(Events.MESSAGES_UPDATE, message); - this.logger.verbose('Inserting message in database'); await this.prismaRepository.messageUpdate.create({ data: message, }); @@ -1454,16 +1333,10 @@ export class BaileysStartupService extends ChannelStartupService { private readonly groupHandler = { 'groups.upsert': (groupMetadata: GroupMetadata[]) => { - this.logger.verbose('Event received: groups.upsert'); - - this.logger.verbose('Sending data to webhook in event GROUPS_UPSERT'); this.sendDataWebhook(Events.GROUPS_UPSERT, groupMetadata); }, 'groups.update': (groupMetadataUpdate: Partial[]) => { - this.logger.verbose('Event received: groups.update'); - - this.logger.verbose('Sending data to webhook in event GROUPS_UPDATE'); this.sendDataWebhook(Events.GROUPS_UPDATE, groupMetadataUpdate); groupMetadataUpdate.forEach((group) => { @@ -1478,24 +1351,18 @@ export class BaileysStartupService extends ChannelStartupService { participants: string[]; action: ParticipantAction; }) => { - this.logger.verbose('Event received: group-participants.update'); - - this.logger.verbose('Sending data to webhook in event GROUP_PARTICIPANTS_UPDATE'); this.sendDataWebhook(Events.GROUP_PARTICIPANTS_UPDATE, participantsUpdate); }, }; private readonly labelHandle = { [Events.LABELS_EDIT]: async (label: Label) => { - this.logger.verbose('Event received: labels.edit'); - this.logger.verbose('Finding labels in database'); const labelsRepository = await this.prismaRepository.label.findMany({ where: { instanceId: this.instanceId }, }); const savedLabel = labelsRepository.find((l) => l.labelId === label.id); if (label.deleted && savedLabel) { - this.logger.verbose('Sending data to webhook in event LABELS_EDIT'); await this.prismaRepository.label.delete({ where: { instanceId: this.instanceId, labelId: label.id }, }); @@ -1505,7 +1372,6 @@ export class BaileysStartupService extends ChannelStartupService { const labelName = label.name.replace(/[^\x20-\x7E]/g, ''); if (!savedLabel || savedLabel.color !== `${label.color}` || savedLabel.name !== labelName) { - this.logger.verbose('Sending data to webhook in event LABELS_EDIT'); await this.prismaRepository.label.create({ data: { color: `${label.color}`, @@ -1523,9 +1389,6 @@ export class BaileysStartupService extends ChannelStartupService { data: { association: LabelAssociation; type: 'remove' | 'add' }, database: Database, ) => { - this.logger.verbose('Sending data to webhook in event LABELS_ASSOCIATION'); - - // Atualiza labels nos chats if (database.ENABLED && database.SAVE_DATA.CHATS) { const chats = await this.prismaRepository.chat.findMany({ where: { instanceId: this.instanceId }, @@ -1560,73 +1423,59 @@ export class BaileysStartupService extends ChannelStartupService { }; private eventHandler() { - this.logger.verbose('Initializing event handler'); this.client.ev.process(async (events) => { if (!this.endSession) { - this.logger.verbose(`Event received: ${Object.keys(events).join(', ')}`); const database = this.configService.get('DATABASE'); const settings = await this.findSettings(); if (events.call) { - this.logger.verbose('Listening event: call'); const call = events.call[0]; if (settings?.rejectCall && call.status == 'offer') { - this.logger.verbose('Rejecting call'); this.client.rejectCall(call.id, call.from); } if (settings?.msgCall?.trim().length > 0 && call.status == 'offer') { - this.logger.verbose('Sending message in call'); const msg = await this.client.sendMessage(call.from, { text: settings.msgCall, }); - this.logger.verbose('Sending data to event messages.upsert'); this.client.ev.emit('messages.upsert', { messages: [msg], type: 'notify', }); } - this.logger.verbose('Sending data to webhook in event CALL'); this.sendDataWebhook(Events.CALL, call); } if (events['connection.update']) { - this.logger.verbose('Listening event: connection.update'); this.connectionUpdate(events['connection.update']); } if (events['creds.update']) { - this.logger.verbose('Listening event: creds.update'); this.instance.authState.saveCreds(); } if (events['messaging-history.set']) { - this.logger.verbose('Listening event: messaging-history.set'); const payload = events['messaging-history.set']; this.messageHandle['messaging-history.set'](payload); } if (events['messages.upsert']) { - this.logger.verbose('Listening event: messages.upsert'); const payload = events['messages.upsert']; this.messageHandle['messages.upsert'](payload, settings); } if (events['messages.update']) { - this.logger.verbose('Listening event: messages.update'); const payload = events['messages.update']; this.messageHandle['messages.update'](payload, settings); } if (events['presence.update']) { - this.logger.verbose('Listening event: presence.update'); const payload = events['presence.update']; if (settings.groupsIgnore && payload.id.includes('@g.us')) { - this.logger.verbose('group ignored'); return; } this.sendDataWebhook(Events.PRESENCE_UPDATE, payload); @@ -1634,63 +1483,53 @@ export class BaileysStartupService extends ChannelStartupService { if (!settings?.groupsIgnore) { if (events['groups.upsert']) { - this.logger.verbose('Listening event: groups.upsert'); const payload = events['groups.upsert']; this.groupHandler['groups.upsert'](payload); } if (events['groups.update']) { - this.logger.verbose('Listening event: groups.update'); const payload = events['groups.update']; this.groupHandler['groups.update'](payload); } if (events['group-participants.update']) { - this.logger.verbose('Listening event: group-participants.update'); const payload = events['group-participants.update']; this.groupHandler['group-participants.update'](payload); } } if (events['chats.upsert']) { - this.logger.verbose('Listening event: chats.upsert'); const payload = events['chats.upsert']; this.chatHandle['chats.upsert'](payload); } if (events['chats.update']) { - this.logger.verbose('Listening event: chats.update'); const payload = events['chats.update']; this.chatHandle['chats.update'](payload); } if (events['chats.delete']) { - this.logger.verbose('Listening event: chats.delete'); const payload = events['chats.delete']; this.chatHandle['chats.delete'](payload); } if (events['contacts.upsert']) { - this.logger.verbose('Listening event: contacts.upsert'); const payload = events['contacts.upsert']; this.contactHandle['contacts.upsert'](payload); } if (events['contacts.update']) { - this.logger.verbose('Listening event: contacts.update'); const payload = events['contacts.update']; this.contactHandle['contacts.update'](payload); } if (events[Events.LABELS_ASSOCIATION]) { - this.logger.verbose('Listening event: labels.association'); const payload = events[Events.LABELS_ASSOCIATION]; this.labelHandle[Events.LABELS_ASSOCIATION](payload, database); return; } if (events[Events.LABELS_EDIT]) { - this.logger.verbose('Listening event: labels.edit'); const payload = events[Events.LABELS_EDIT]; this.labelHandle[Events.LABELS_EDIT](payload); return; @@ -1732,15 +1571,12 @@ export class BaileysStartupService extends ChannelStartupService { public async profilePicture(number: string) { const jid = this.createJid(number); - this.logger.verbose('Getting profile picture with jid: ' + jid); try { - this.logger.verbose('Getting profile picture url'); return { wuid: jid, profilePictureUrl: await this.client.profilePictureUrl(jid, 'image'), }; } catch (error) { - this.logger.verbose('Profile picture not found'); return { wuid: jid, profilePictureUrl: null, @@ -1751,15 +1587,12 @@ export class BaileysStartupService extends ChannelStartupService { public async getStatus(number: string) { const jid = this.createJid(number); - this.logger.verbose('Getting profile status with jid:' + jid); try { - this.logger.verbose('Getting status'); return { wuid: jid, status: (await this.client.fetchStatus(jid))?.status, }; } catch (error) { - this.logger.verbose('Status not found'); return { wuid: jid, status: null, @@ -1776,10 +1609,7 @@ export class BaileysStartupService extends ChannelStartupService { throw new BadRequestException(onWhatsapp); } - this.logger.verbose('Getting profile with jid: ' + jid); try { - this.logger.verbose('Getting profile info'); - if (number) { const info = (await this.whatsappNumber({ numbers: [jid] }))?.shift(); const picture = await this.profilePicture(info?.jid); @@ -1814,7 +1644,6 @@ export class BaileysStartupService extends ChannelStartupService { }; } } catch (error) { - this.logger.verbose('Profile not found'); return { wuid: jid, name: null, @@ -1832,13 +1661,8 @@ export class BaileysStartupService extends ChannelStartupService { options?: Options, isChatwoot = false, ) { - this.logger.verbose('Sending message with typing'); - - this.logger.verbose(`Check if number "${number}" is WhatsApp`); const isWA = (await this.whatsappNumber({ numbers: [number] }))?.shift(); - this.logger.verbose(`Exists: "${isWA.exists}" | jid: ${isWA.jid}`); - if (!isWA.exists && !isJidGroup(isWA.jid) && !isWA.jid.includes('@broadcast')) { if (this.configService.get('CHATWOOT').ENABLED && this.localChatwoot.enabled) { const body = { @@ -1854,8 +1678,6 @@ export class BaileysStartupService extends ChannelStartupService { try { if (options?.delay) { - this.logger.verbose('Delaying message'); - if (options.delay > 20000) { let remainingDelay = options.delay; while (remainingDelay > 20000) { @@ -1900,7 +1722,6 @@ export class BaileysStartupService extends ChannelStartupService { if (msg) { quoted = msg; - this.logger.verbose('Quoted message'); } } @@ -1918,16 +1739,9 @@ export class BaileysStartupService extends ChannelStartupService { } if (options?.mentions) { - this.logger.verbose('Mentions defined'); - if (options.mentions?.everyOne) { - this.logger.verbose('Mentions everyone'); - - this.logger.verbose('Getting group metadata'); mentions = group.participants.map((participant) => participant.id); - this.logger.verbose('Getting group metadata for mentions'); } else if (options.mentions?.mentioned?.length) { - this.logger.verbose('Mentions manually defined'); mentions = options.mentions.mentioned.map((mention) => { const jid = this.createJid(mention); if (isJidGroup(jid)) { @@ -1955,7 +1769,6 @@ export class BaileysStartupService extends ChannelStartupService { sender !== 'status@broadcast' ) { if (message['reactionMessage']) { - this.logger.verbose('Sending reaction'); return await this.client.sendMessage( sender, { @@ -1976,7 +1789,6 @@ export class BaileysStartupService extends ChannelStartupService { } } if (message['conversation']) { - this.logger.verbose('Sending message'); return await this.client.sendMessage( sender, { @@ -1996,7 +1808,6 @@ export class BaileysStartupService extends ChannelStartupService { } if (!message['audio'] && !message['poll'] && sender != 'status@broadcast') { - this.logger.verbose('Sending message'); return await this.client.sendMessage( sender, { @@ -2018,7 +1829,6 @@ export class BaileysStartupService extends ChannelStartupService { } if (sender === 'status@broadcast') { - this.logger.verbose('Sending message'); return await this.client.sendMessage( sender, message['status'].content as unknown as AnyMessageContent, @@ -2030,7 +1840,6 @@ export class BaileysStartupService extends ChannelStartupService { ); } - this.logger.verbose('Sending message'); return await this.client.sendMessage( sender, message as unknown as AnyMessageContent, @@ -2060,14 +1869,12 @@ export class BaileysStartupService extends ChannelStartupService { this.logger.log(messageRaw); - this.logger.verbose('Sending data to webhook in event SEND_MESSAGE'); this.sendDataWebhook(Events.SEND_MESSAGE, messageRaw); if (this.configService.get('CHATWOOT').ENABLED && this.localChatwoot.enabled && !isChatwoot) { this.chatwootService.eventWhatsapp(Events.SEND_MESSAGE, { instanceName: this.instance.name }, messageRaw); } - this.logger.verbose('Inserting message in database'); await this.prismaRepository.message.create({ data: messageRaw, }); @@ -2084,10 +1891,8 @@ export class BaileysStartupService extends ChannelStartupService { try { const { number } = data; - this.logger.verbose(`Check if number "${number}" is WhatsApp`); const isWA = (await this.whatsappNumber({ numbers: [number] }))?.shift(); - this.logger.verbose(`Exists: "${isWA.exists}" | jid: ${isWA.jid}`); if (!isWA.exists && !isJidGroup(isWA.jid) && !isWA.jid.includes('@broadcast')) { throw new BadRequestException(isWA); } @@ -2135,7 +1940,6 @@ export class BaileysStartupService extends ChannelStartupService { public async setPresence(data: SetPresenceDto) { try { await this.client.sendPresenceUpdate(data.presence); - this.logger.verbose('Sending presence update: ' + data.presence); } catch (error) { this.logger.error(error); throw new BadRequestException(error.toString()); @@ -2144,7 +1948,6 @@ export class BaileysStartupService extends ChannelStartupService { // Send Message Controller public async textMessage(data: SendTextDto, isChatwoot = false) { - this.logger.verbose('Sending text message'); return await this.sendMessageWithTyping( data.number, { @@ -2156,7 +1959,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async pollMessage(data: SendPollDto) { - this.logger.verbose('Sending poll message'); return await this.sendMessageWithTyping( data.number, { @@ -2171,8 +1973,6 @@ export class BaileysStartupService extends ChannelStartupService { } private async formatStatusMessage(status: StatusMessage) { - this.logger.verbose('Formatting status message'); - if (!status.type) { throw new BadRequestException('Type is required'); } @@ -2182,9 +1982,6 @@ export class BaileysStartupService extends ChannelStartupService { } if (status.allContacts) { - this.logger.verbose('All contacts defined as true'); - - this.logger.verbose('Getting contacts from database'); const contacts = await this.prismaRepository.contact.findMany({ where: { instanceId: this.instanceId }, }); @@ -2193,10 +1990,7 @@ export class BaileysStartupService extends ChannelStartupService { throw new BadRequestException('Contacts not found'); } - this.logger.verbose('Getting contacts with push name'); status.statusJidList = contacts.filter((contact) => contact.pushName).map((contact) => contact.remoteJid); - - this.logger.verbose(status.statusJidList); } if (!status.statusJidList?.length && !status.allContacts) { @@ -2204,8 +1998,6 @@ export class BaileysStartupService extends ChannelStartupService { } if (status.type === 'text') { - this.logger.verbose('Type defined as text'); - if (!status.backgroundColor) { throw new BadRequestException('Background color is required'); } @@ -2226,8 +2018,6 @@ export class BaileysStartupService extends ChannelStartupService { }; } if (status.type === 'image') { - this.logger.verbose('Type defined as image'); - return { content: { image: { @@ -2241,8 +2031,6 @@ export class BaileysStartupService extends ChannelStartupService { }; } if (status.type === 'video') { - this.logger.verbose('Type defined as video'); - return { content: { video: { @@ -2256,12 +2044,8 @@ export class BaileysStartupService extends ChannelStartupService { }; } if (status.type === 'audio') { - this.logger.verbose('Type defined as audio'); - - this.logger.verbose('Processing audio'); const convert = await this.processAudio(status.content, 'status@broadcast'); if (typeof convert === 'string') { - this.logger.verbose('Audio processed'); const audio = fs.readFileSync(convert).toString('base64'); const result = { @@ -2287,7 +2071,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async statusMessage(data: SendStatusDto) { - this.logger.verbose('Sending status message'); const status = await this.formatStatusMessage(data.statusMessage); return await this.sendMessageWithTyping('status@broadcast', { @@ -2297,7 +2080,6 @@ export class BaileysStartupService extends ChannelStartupService { private async prepareMediaMessage(mediaMessage: MediaMessage) { try { - this.logger.verbose('Preparing media message'); const prepareMedia = await prepareWAMessageMedia( { [mediaMessage.mediatype]: isURL(mediaMessage.media) @@ -2308,14 +2090,11 @@ export class BaileysStartupService extends ChannelStartupService { ); const mediaType = mediaMessage.mediatype + 'Message'; - this.logger.verbose('Media type: ' + mediaType); if (mediaMessage.mediatype === 'document' && !mediaMessage.fileName) { - this.logger.verbose('If media type is document and file name is not defined then'); const regex = new RegExp(/.*\/(.+?)\./); const arrayMatch = regex.exec(mediaMessage.media); mediaMessage.fileName = arrayMatch[1]; - this.logger.verbose('File name: ' + mediaMessage.fileName); } if (mediaMessage.mediatype === 'image' && !mediaMessage.fileName) { @@ -2357,21 +2136,17 @@ export class BaileysStartupService extends ChannelStartupService { } } - this.logger.verbose('Mimetype: ' + mimetype); - prepareMedia[mediaType].caption = mediaMessage?.caption; prepareMedia[mediaType].mimetype = mimetype; prepareMedia[mediaType].fileName = mediaMessage.fileName; if (mediaMessage.mediatype === 'video') { - this.logger.verbose('Is media type video then set gif playback as false'); prepareMedia[mediaType].jpegThumbnail = Uint8Array.from( readFileSync(join(process.cwd(), 'public', 'images', 'video-cover.png')), ); prepareMedia[mediaType].gifPlayback = false; } - this.logger.verbose('Generating wa message from content'); return generateWAMessageFromContent( '', { [mediaType]: { ...prepareMedia[mediaType] } }, @@ -2385,31 +2160,20 @@ export class BaileysStartupService extends ChannelStartupService { private async convertToWebP(image: string, number: string) { try { - this.logger.verbose('Converting image to WebP to sticker'); - let imagePath: string; const hash = `${number}-${new Date().getTime()}`; - this.logger.verbose('Hash to image name: ' + hash); const outputPath = `${join(this.storePath, 'temp', `${hash}.webp`)}`; - this.logger.verbose('Output path: ' + outputPath); if (isBase64(image)) { - this.logger.verbose('Image is base64'); - const base64Data = image.replace(/^data:image\/(jpeg|png|gif);base64,/, ''); const imageBuffer = Buffer.from(base64Data, 'base64'); imagePath = `${join(this.storePath, 'temp', `temp-${hash}.png`)}`; - this.logger.verbose('Image path: ' + imagePath); await sharp(imageBuffer).toFile(imagePath); - this.logger.verbose('Image created'); } else { - this.logger.verbose('Image is url'); - const timestamp = new Date().getTime(); const url = `${image}?timestamp=${timestamp}`; - this.logger.verbose('including timestamp in url: ' + url); let config: any = { responseType: 'arraybuffer', @@ -2429,21 +2193,16 @@ export class BaileysStartupService extends ChannelStartupService { } const response = await axios.get(url, config); - this.logger.verbose('Getting image from url'); const imageBuffer = Buffer.from(response.data, 'binary'); imagePath = `${join(this.storePath, 'temp', `temp-${hash}.png`)}`; - this.logger.verbose('Image path: ' + imagePath); await sharp(imageBuffer).toFile(imagePath); - this.logger.verbose('Image created'); } await sharp(imagePath).webp().toFile(outputPath); - this.logger.verbose('Image converted to WebP'); fs.unlinkSync(imagePath); - this.logger.verbose('Temp image deleted'); return outputPath; } catch (error) { @@ -2452,7 +2211,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async mediaSticker(data: SendStickerDto) { - this.logger.verbose('Sending media sticker'); const convert = await this.convertToWebP(data.stickerMessage.image, data.number); const result = await this.sendMessageWithTyping( data.number, @@ -2463,76 +2221,53 @@ export class BaileysStartupService extends ChannelStartupService { ); fs.unlinkSync(convert); - this.logger.verbose('Converted image deleted'); return result; } public async mediaMessage(data: SendMediaDto, isChatwoot = false) { - this.logger.verbose('Sending media message'); const generate = await this.prepareMediaMessage(data.mediaMessage); return await this.sendMessageWithTyping(data.number, { ...generate.message }, data?.options, isChatwoot); } public async processAudio(audio: string, number: string) { - this.logger.verbose('Processing audio'); let tempAudioPath: string; let outputAudio: string; number = number.replace(/\D/g, ''); const hash = `${number}-${new Date().getTime()}`; - this.logger.verbose('Hash to audio name: ' + hash); if (isURL(audio)) { - this.logger.verbose('Audio is url'); - outputAudio = `${join(this.storePath, 'temp', `${hash}.mp4`)}`; tempAudioPath = `${join(this.storePath, 'temp', `temp-${hash}.mp3`)}`; - this.logger.verbose('Output audio path: ' + outputAudio); - this.logger.verbose('Temp audio path: ' + tempAudioPath); - const timestamp = new Date().getTime(); const url = `${audio}?timestamp=${timestamp}`; - this.logger.verbose('Including timestamp in url: ' + url); - const response = await axios.get(url, { responseType: 'arraybuffer' }); - this.logger.verbose('Getting audio from url'); fs.writeFileSync(tempAudioPath, response.data); } else { - this.logger.verbose('Audio is base64'); - outputAudio = `${join(this.storePath, 'temp', `${hash}.mp4`)}`; tempAudioPath = `${join(this.storePath, 'temp', `temp-${hash}.mp3`)}`; - this.logger.verbose('Output audio path: ' + outputAudio); - this.logger.verbose('Temp audio path: ' + tempAudioPath); - const audioBuffer = Buffer.from(audio, 'base64'); fs.writeFileSync(tempAudioPath, audioBuffer); - this.logger.verbose('Temp audio created'); } - this.logger.verbose('Converting audio to mp4'); return new Promise((resolve, reject) => { exec(`${ffmpegPath.path} -i ${tempAudioPath} -vn -ab 128k -ar 44100 -f ipod ${outputAudio} -y`, (error) => { fs.unlinkSync(tempAudioPath); - this.logger.verbose('Temp audio deleted'); if (error) reject(error); - this.logger.verbose('Audio converted to mp4'); resolve(outputAudio); }); }); } public async audioWhatsapp(data: SendAudioDto, isChatwoot = false) { - this.logger.verbose('Sending audio whatsapp'); - if (!data.options?.encoding && data.options?.encoding !== false) { data.options.encoding = true; } @@ -2553,7 +2288,6 @@ export class BaileysStartupService extends ChannelStartupService { ); fs.unlinkSync(convert); - this.logger.verbose('Converted audio deleted'); return result; } else { @@ -2580,7 +2314,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async locationMessage(data: SendLocationDto) { - this.logger.verbose('Sending location message'); return await this.sendMessageWithTyping( data.number, { @@ -2596,7 +2329,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async listMessage(data: SendListDto) { - this.logger.verbose('Sending list message'); return await this.sendMessageWithTyping( data.number, { @@ -2614,36 +2346,29 @@ export class BaileysStartupService extends ChannelStartupService { } public async contactMessage(data: SendContactDto) { - this.logger.verbose('Sending contact message'); const message: proto.IMessage = {}; const vcard = (contact: ContactMessage) => { - this.logger.verbose('Creating vcard'); let result = 'BEGIN:VCARD\n' + 'VERSION:3.0\n' + `N:${contact.fullName}\n` + `FN:${contact.fullName}\n`; if (contact.organization) { - this.logger.verbose('Organization defined'); result += `ORG:${contact.organization};\n`; } if (contact.email) { - this.logger.verbose('Email defined'); result += `EMAIL:${contact.email}\n`; } if (contact.url) { - this.logger.verbose('Url defined'); result += `URL:${contact.url}\n`; } if (!contact.wuid) { - this.logger.verbose('Wuid defined'); contact.wuid = this.createJid(contact.phoneNumber); } result += `item1.TEL;waid=${contact.wuid}:${contact.phoneNumber}\n` + 'item1.X-ABLabel:Celular\n' + 'END:VCARD'; - this.logger.verbose('Vcard created'); return result; }; @@ -2668,7 +2393,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async reactionMessage(data: SendReactionDto) { - this.logger.verbose('Sending reaction message'); return await this.sendMessageWithTyping(data.reactionMessage.key.remoteJid, { reactionMessage: { key: data.reactionMessage.key, @@ -2679,8 +2403,6 @@ export class BaileysStartupService extends ChannelStartupService { // Chat Controller public async whatsappNumber(data: WhatsAppNumberDto) { - this.logger.verbose('Getting whatsapp number'); - const jids: { groups: { number: string; jid: string }[]; broadcast: { number: string; jid: string }[]; @@ -2795,8 +2517,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async markMessageAsRead(data: ReadMessageDto) { - this.logger.verbose('Marking message as read'); - try { const keys: proto.IMessageKey[] = []; data.read_messages.forEach((read) => { @@ -2837,7 +2557,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async archiveChat(data: ArchiveChatDto) { - this.logger.verbose('Archiving chat'); try { let last_message = data.lastMessage; let number = data.chat; @@ -2875,8 +2594,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async markChatUnread(data: MarkChatUnreadDto) { - this.logger.verbose('Marking chat as unread'); - try { let last_message = data.lastMessage; let number = data.chat; @@ -2914,7 +2631,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async deleteMessage(del: DeleteMessage) { - this.logger.verbose('Deleting message'); try { return await this.client.sendMessage(del.remoteJid, { delete: del }); } catch (error) { @@ -2923,7 +2639,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async getBase64FromMediaMessage(data: getBase64FromMediaMessageDto) { - this.logger.verbose('Getting base64 from media message'); try { const m = data?.message; const convertToMp4 = data?.convertToMp4 ?? false; @@ -2959,7 +2674,6 @@ export class BaileysStartupService extends ChannelStartupService { msg.message = JSON.parse(JSON.stringify(msg.message)); } - this.logger.verbose('Downloading media message'); const buffer = await downloadMediaMessage( { key: msg?.key, message: msg?.message }, 'buffer', @@ -2972,13 +2686,11 @@ export class BaileysStartupService extends ChannelStartupService { const typeMessage = getContentType(msg.message); if (convertToMp4 && typeMessage === 'audioMessage') { - this.logger.verbose('Converting audio to mp4'); const number = msg.key.remoteJid.split('@')[0]; const convert = await this.processAudio(buffer.toString('base64'), number); if (typeof convert === 'string') { const audio = fs.readFileSync(convert).toString('base64'); - this.logger.verbose('Audio converted to mp4'); const result = { mediaType, @@ -2994,14 +2706,11 @@ export class BaileysStartupService extends ChannelStartupService { }; fs.unlinkSync(convert); - this.logger.verbose('Converted audio deleted'); - this.logger.verbose('Media message downloaded'); return result; } } - this.logger.verbose('Media message downloaded'); return { mediaType, fileName: mediaMessage['fileName'], @@ -3021,7 +2730,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async fetchPrivacySettings() { - this.logger.verbose('Fetching privacy settings'); const privacy = await this.client.fetchPrivacySettings(); return { @@ -3035,25 +2743,13 @@ export class BaileysStartupService extends ChannelStartupService { } public async updatePrivacySettings(settings: PrivacySettingDto) { - this.logger.verbose('Updating privacy settings'); try { await this.client.updateReadReceiptsPrivacy(settings.privacySettings.readreceipts); - this.logger.verbose('Read receipts privacy updated'); - await this.client.updateProfilePicturePrivacy(settings.privacySettings.profile); - this.logger.verbose('Profile picture privacy updated'); - await this.client.updateStatusPrivacy(settings.privacySettings.status); - this.logger.verbose('Status privacy updated'); - await this.client.updateOnlinePrivacy(settings.privacySettings.online); - this.logger.verbose('Online privacy updated'); - await this.client.updateLastSeenPrivacy(settings.privacySettings.last); - this.logger.verbose('Last seen privacy updated'); - await this.client.updateGroupsAddPrivacy(settings.privacySettings.groupadd); - this.logger.verbose('Groups add privacy updated'); this.reloadConnection(); @@ -3074,12 +2770,10 @@ export class BaileysStartupService extends ChannelStartupService { } public async fetchBusinessProfile(number: string): Promise { - this.logger.verbose('Fetching business profile'); try { const jid = number ? this.createJid(number) : this.instance.wuid; const profile = await this.client.getBusinessProfile(jid); - this.logger.verbose('Trying to get business profile'); if (!profile) { const info = await this.whatsappNumber({ numbers: [jid] }); @@ -3091,7 +2785,6 @@ export class BaileysStartupService extends ChannelStartupService { }; } - this.logger.verbose('Business profile fetched'); return { isBusiness: true, ...profile, @@ -3102,7 +2795,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async updateProfileName(name: string) { - this.logger.verbose('Updating profile name to ' + name); try { await this.client.updateProfileName(name); @@ -3113,7 +2805,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async updateProfileStatus(status: string) { - this.logger.verbose('Updating profile status to: ' + status); try { await this.client.updateProfileStatus(status); @@ -3124,15 +2815,11 @@ export class BaileysStartupService extends ChannelStartupService { } public async updateProfilePicture(picture: string) { - this.logger.verbose('Updating profile picture'); try { let pic: WAMediaUpload; if (isURL(picture)) { - this.logger.verbose('Picture is url'); - const timestamp = new Date().getTime(); const url = `${picture}?timestamp=${timestamp}`; - this.logger.verbose('Including timestamp in url: ' + url); let config: any = { responseType: 'arraybuffer', @@ -3152,17 +2839,13 @@ export class BaileysStartupService extends ChannelStartupService { } pic = (await axios.get(url, config)).data; - this.logger.verbose('Getting picture from url'); } else if (isBase64(picture)) { - this.logger.verbose('Picture is base64'); pic = Buffer.from(picture, 'base64'); - this.logger.verbose('Getting picture from base64'); } else { throw new BadRequestException('"profilePicture" must be a url or a base64'); } await this.client.updateProfilePicture(this.instance.wuid, pic); - this.logger.verbose('Profile picture updated'); this.reloadConnection(); @@ -3173,7 +2856,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async removeProfilePicture() { - this.logger.verbose('Removing profile picture'); try { await this.client.removeProfilePicture(this.instance.wuid); @@ -3186,14 +2868,11 @@ export class BaileysStartupService extends ChannelStartupService { } public async blockUser(data: BlockUserDto) { - this.logger.verbose('Blocking user: ' + data.number); try { const { number } = data; - this.logger.verbose(`Check if number "${number}" is WhatsApp`); const isWA = (await this.whatsappNumber({ numbers: [number] }))?.shift(); - this.logger.verbose(`Exists: "${isWA.exists}" | jid: ${isWA.jid}`); if (!isWA.exists && !isJidGroup(isWA.jid) && !isWA.jid.includes('@broadcast')) { throw new BadRequestException(isWA); } @@ -3212,7 +2891,6 @@ export class BaileysStartupService extends ChannelStartupService { try { const jid = this.createJid(data.number); - this.logger.verbose('Updating message'); return await this.client.sendMessage(jid, { text: data.text, edit: data.key, @@ -3224,7 +2902,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async fetchLabels(): Promise { - this.logger.verbose('Fetching labels'); const labels = await this.prismaRepository.label.findMany({ where: { instanceId: this.instanceId, @@ -3240,7 +2917,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async handleLabel(data: HandleLabelDto) { - this.logger.verbose('Adding label'); const whatsappContact = await this.whatsappNumber({ numbers: [data.number] }); if (whatsappContact.length === 0) { throw new NotFoundException('Number not found'); @@ -3299,21 +2975,17 @@ export class BaileysStartupService extends ChannelStartupService { } public async createGroup(create: CreateGroupDto) { - this.logger.verbose('Creating group: ' + create.subject); try { const participants = (await this.whatsappNumber({ numbers: create.participants })) .filter((participant) => participant.exists) .map((participant) => participant.jid); const { id } = await this.client.groupCreate(create.subject, participants); - this.logger.verbose('Group created: ' + id); if (create?.description) { - this.logger.verbose('Updating group description: ' + create.description); await this.client.groupUpdateDescription(id, create.description); } if (create?.promoteParticipants) { - this.logger.verbose('Prometing group participants: ' + participants); await this.updateGParticipant({ groupJid: id, action: 'promote', @@ -3321,7 +2993,6 @@ export class BaileysStartupService extends ChannelStartupService { }); } - this.logger.verbose('Getting group metadata'); const group = await this.client.groupMetadata(id); return group; @@ -3332,15 +3003,11 @@ export class BaileysStartupService extends ChannelStartupService { } public async updateGroupPicture(picture: GroupPictureDto) { - this.logger.verbose('Updating group picture'); try { let pic: WAMediaUpload; if (isURL(picture.image)) { - this.logger.verbose('Picture is url'); - const timestamp = new Date().getTime(); const url = `${picture.image}?timestamp=${timestamp}`; - this.logger.verbose('Including timestamp in url: ' + url); let config: any = { responseType: 'arraybuffer', @@ -3360,16 +3027,12 @@ export class BaileysStartupService extends ChannelStartupService { } pic = (await axios.get(url, config)).data; - this.logger.verbose('Getting picture from url'); } else if (isBase64(picture.image)) { - this.logger.verbose('Picture is base64'); pic = Buffer.from(picture.image, 'base64'); - this.logger.verbose('Getting picture from base64'); } else { throw new BadRequestException('"profilePicture" must be a url or a base64'); } await this.client.updateProfilePicture(picture.groupJid, pic); - this.logger.verbose('Group picture updated'); return { update: 'success' }; } catch (error) { @@ -3378,7 +3041,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async updateGroupSubject(data: GroupSubjectDto) { - this.logger.verbose('Updating group subject to: ' + data.subject); try { await this.client.groupUpdateSubject(data.groupJid, data.subject); @@ -3389,7 +3051,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async updateGroupDescription(data: GroupDescriptionDto) { - this.logger.verbose('Updating group description to: ' + data.description); try { await this.client.groupUpdateDescription(data.groupJid, data.description); @@ -3400,7 +3061,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async findGroup(id: GroupJid, reply: 'inner' | 'out' = 'out') { - this.logger.verbose('Fetching group'); try { const group = await this.client.groupMetadata(id.groupJid); @@ -3430,7 +3090,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async fetchAllGroups(getParticipants: GetParticipant) { - this.logger.verbose('Fetching all groups'); try { const fetch = Object.values(await this.client.groupFetchAllParticipating()); let groups = []; @@ -3466,7 +3125,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async inviteCode(id: GroupJid) { - this.logger.verbose('Fetching invite code for group: ' + id.groupJid); try { const code = await this.client.groupInviteCode(id.groupJid); return { inviteUrl: `https://chat.whatsapp.com/${code}`, inviteCode: code }; @@ -3476,7 +3134,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async inviteInfo(id: GroupInvite) { - this.logger.verbose('Fetching invite info for code: ' + id.inviteCode); try { return await this.client.groupGetInviteInfo(id.inviteCode); } catch (error) { @@ -3485,13 +3142,10 @@ export class BaileysStartupService extends ChannelStartupService { } public async sendInvite(id: GroupSendInvite) { - this.logger.verbose('Sending invite for group: ' + id.groupJid); try { const inviteCode = await this.inviteCode({ groupJid: id.groupJid }); - this.logger.verbose('Getting invite code: ' + inviteCode.inviteCode); const inviteUrl = inviteCode.inviteUrl; - this.logger.verbose('Invite url: ' + inviteUrl); const numbers = id.numbers.map((number) => this.createJid(number)); const description = id.description ?? ''; @@ -3506,8 +3160,6 @@ export class BaileysStartupService extends ChannelStartupService { await this.sendMessageWithTyping(number, message); } - this.logger.verbose('Invite sent for numbers: ' + numbers.join(', ')); - return { send: true, inviteUrl }; } catch (error) { throw new NotFoundException('No send invite'); @@ -3515,7 +3167,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async acceptInviteCode(id: AcceptGroupInvite) { - this.logger.verbose('Joining the group by invitation code: ' + id.inviteCode); try { const groupJid = await this.client.groupAcceptInvite(id.inviteCode); return { accepted: true, groupJid: groupJid }; @@ -3525,7 +3176,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async revokeInviteCode(id: GroupJid) { - this.logger.verbose('Revoking invite code for group: ' + id.groupJid); try { const inviteCode = await this.client.groupRevokeInvite(id.groupJid); return { revoked: true, inviteCode }; @@ -3535,7 +3185,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async findParticipants(id: GroupJid) { - this.logger.verbose('Fetching participants for group: ' + id.groupJid); try { const participants = (await this.client.groupMetadata(id.groupJid)).participants; const contacts = await this.prismaRepository.contact.findMany({ @@ -3561,7 +3210,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async updateGParticipant(update: GroupUpdateParticipantDto) { - this.logger.verbose('Updating participants'); try { const participants = update.participants.map((p) => this.createJid(p)); const updateParticipants = await this.client.groupParticipantsUpdate( @@ -3576,7 +3224,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async updateGSetting(update: GroupUpdateSettingDto) { - this.logger.verbose('Updating setting for group: ' + update.groupJid); try { const updateSetting = await this.client.groupSettingUpdate(update.groupJid, update.action); return { updateSetting: updateSetting }; @@ -3586,7 +3233,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async toggleEphemeral(update: GroupToggleEphemeralDto) { - this.logger.verbose('Toggling ephemeral for group: ' + update.groupJid); try { await this.client.groupToggleEphemeral(update.groupJid, update.expiration); return { success: true }; @@ -3596,7 +3242,6 @@ export class BaileysStartupService extends ChannelStartupService { } public async leaveGroup(id: GroupJid) { - this.logger.verbose('Leaving group: ' + id.groupJid); try { await this.client.groupLeave(id.groupJid); return { groupJid: id.groupJid, leave: true }; diff --git a/src/api/services/channels/whatsapp.business.service.ts b/src/api/services/channels/whatsapp.business.service.ts index 7d61219e..72584b66 100644 --- a/src/api/services/channels/whatsapp.business.service.ts +++ b/src/api/services/channels/whatsapp.business.service.ts @@ -39,7 +39,6 @@ export class BusinessStartupService extends ChannelStartupService { private readonly providerFiles: ProviderFiles, ) { super(configService, eventEmitter, prismaRepository, chatwootCache); - this.logger.verbose('BusinessStartupService initialized'); this.cleanStore(); } @@ -49,7 +48,6 @@ export class BusinessStartupService extends ChannelStartupService { public mobile: boolean; public get connectionStatus() { - this.logger.verbose('Getting connection status'); return this.stateConnection; } @@ -58,8 +56,6 @@ export class BusinessStartupService extends ChannelStartupService { } public get qrCode(): wa.QrCode { - this.logger.verbose('Getting qrcode'); - return { pairingCode: this.instance.qrcode?.pairingCode, code: this.instance.qrcode?.code, @@ -69,7 +65,6 @@ export class BusinessStartupService extends ChannelStartupService { } public async logoutInstance() { - this.logger.verbose('Logging out instance'); await this.closeClient(); } @@ -92,15 +87,12 @@ export class BusinessStartupService extends ChannelStartupService { public async profilePicture(number: string) { const jid = this.createJid(number); - this.logger.verbose('Getting profile picture with jid: ' + jid); try { - this.logger.verbose('Getting profile picture url'); return { wuid: jid, profilePictureUrl: await this.client.profilePictureUrl(jid, 'image'), }; } catch (error) { - this.logger.verbose('Profile picture not found'); return { wuid: jid, profilePictureUrl: null, @@ -121,7 +113,6 @@ export class BusinessStartupService extends ChannelStartupService { } public async setWhatsappBusinessProfile(data: NumberBusiness): Promise { - this.logger.verbose('set profile'); const content = { messaging_product: 'whatsapp', about: data.about, @@ -146,14 +137,8 @@ export class BusinessStartupService extends ChannelStartupService { this.loadSqs(); this.loadTypebot(); - this.logger.verbose('Creating socket'); - - this.logger.verbose('Socket created'); - this.eventHandler(content); - this.logger.verbose('Socket event handler initialized'); - this.phoneNumber = this.createJid( content.messages ? content.messages[0].from : content.statuses[0]?.recipient_id, ); @@ -229,7 +214,6 @@ export class BusinessStartupService extends ChannelStartupService { let content: any = {}; const vcard = (contact: any) => { - this.logger.verbose('Creating vcard'); let result = 'BEGIN:VCARD\n' + 'VERSION:3.0\n' + @@ -237,22 +221,18 @@ export class BusinessStartupService extends ChannelStartupService { `FN:${contact.name.formatted_name}\n`; if (contact.org) { - this.logger.verbose('Organization defined'); result += `ORG:${contact.org.company};\n`; } if (contact.emails) { - this.logger.verbose('Email defined'); result += `EMAIL:${contact.emails[0].email}\n`; } if (contact.urls) { - this.logger.verbose('Url defined'); result += `URL:${contact.urls[0].url}\n`; } if (!contact.phones[0]?.wa_id) { - this.logger.verbose('Wuid defined'); contact.phones[0].wa_id = this.createJid(contact.phones[0].phone); } @@ -261,7 +241,6 @@ export class BusinessStartupService extends ChannelStartupService { 'item1.X-ABLabel:Celular\n' + 'END:VCARD'; - this.logger.verbose('Vcard created'); return result; }; @@ -405,8 +384,6 @@ export class BusinessStartupService extends ChannelStartupService { this.logger.log(messageRaw); - this.logger.verbose('Sending data to webhook in event MESSAGES_UPSERT'); - this.sendDataWebhook(Events.MESSAGES_UPSERT, messageRaw); if (this.configService.get('CHATWOOT').ENABLED && this.localChatwoot.enabled) { @@ -442,12 +419,10 @@ export class BusinessStartupService extends ChannelStartupService { } } - this.logger.verbose('Inserting message in database'); await this.prismaRepository.message.create({ data: messageRaw, }); - this.logger.verbose('Verifying contact from message'); const contact = await this.prismaRepository.contact.findFirst({ where: { instanceId: this.instanceId, remoteJid: key.remoteJid }, }); @@ -460,12 +435,10 @@ export class BusinessStartupService extends ChannelStartupService { }; if (contactRaw.remoteJid === 'status@broadcast') { - this.logger.verbose('Contact is status@broadcast'); return; } if (contact) { - this.logger.verbose('Contact found in database'); const contactRaw: any = { remoteJid: received.contacts[0].profile.phone, pushName, @@ -473,7 +446,6 @@ export class BusinessStartupService extends ChannelStartupService { instanceId: this.instanceId, }; - this.logger.verbose('Sending data to webhook in event CONTACTS_UPDATE'); this.sendDataWebhook(Events.CONTACTS_UPDATE, contactRaw); if (this.configService.get('CHATWOOT').ENABLED && this.localChatwoot.enabled) { @@ -484,7 +456,6 @@ export class BusinessStartupService extends ChannelStartupService { ); } - this.logger.verbose('Updating contact in database'); await this.prismaRepository.contact.updateMany({ where: { remoteJid: contact.remoteJid }, data: contactRaw, @@ -492,17 +463,12 @@ export class BusinessStartupService extends ChannelStartupService { return; } - this.logger.verbose('Contact not found in database'); - - this.logger.verbose('Sending data to webhook in event CONTACTS_UPSERT'); this.sendDataWebhook(Events.CONTACTS_UPSERT, contactRaw); - this.logger.verbose('Inserting contact in database'); this.prismaRepository.contact.create({ data: contactRaw, }); } - this.logger.verbose('Event received: messages.update'); if (received.statuses) { for await (const item of received.statuses) { const key = { @@ -511,12 +477,9 @@ export class BusinessStartupService extends ChannelStartupService { fromMe: this.phoneNumber === received.metadata.phone_number_id, }; if (settings?.groups_ignore && key.remoteJid.includes('@g.us')) { - this.logger.verbose('group ignored'); return; } if (key.remoteJid !== 'status@broadcast' && !key?.remoteJid?.match(/(:\d+)/)) { - this.logger.verbose('Message update is valid'); - if (item.status === 'read' && !key.fromMe) return; const findMessage = await this.prismaRepository.message.findFirst({ @@ -530,9 +493,6 @@ export class BusinessStartupService extends ChannelStartupService { }); if (item.message === null && item.status === undefined) { - this.logger.verbose('Message deleted'); - - this.logger.verbose('Sending data to webhook in event MESSAGE_DELETE'); this.sendDataWebhook(Events.MESSAGES_DELETE, key); const message: any = { @@ -546,9 +506,6 @@ export class BusinessStartupService extends ChannelStartupService { instanceId: this.instanceId, }; - this.logger.verbose(message); - - this.logger.verbose('Inserting message in database'); await this.prismaRepository.messageUpdate.create({ data: message, }); @@ -575,12 +532,8 @@ export class BusinessStartupService extends ChannelStartupService { instanceId: this.instanceId, }; - this.logger.verbose(message); - - this.logger.verbose('Sending data to webhook in event MESSAGES_UPDATE'); this.sendDataWebhook(Events.MESSAGES_UPDATE, message); - this.logger.verbose('Inserting message in database'); await this.prismaRepository.messageUpdate.create({ data: message, }); @@ -661,16 +614,13 @@ export class BusinessStartupService extends ChannelStartupService { } protected async eventHandler(content: any) { - this.logger.verbose('Initializing event handler'); const database = this.configService.get('DATABASE'); const settings = await this.findSettings(); - this.logger.verbose('Listening event: messages.statuses'); this.messageHandle(content, database, settings); } protected async sendMessageWithTyping(number: string, message: any, options?: Options, isChatwoot = false) { - this.logger.verbose('Sending message with typing'); try { let quoted: any; const linkPreview = options?.linkPreview != false ? undefined : false; @@ -684,13 +634,11 @@ export class BusinessStartupService extends ChannelStartupService { } quoted = msg; - this.logger.verbose('Quoted message'); } let content: any; const messageSent = await (async () => { if (message['reactionMessage']) { - this.logger.verbose('Sending reaction'); content = { messaging_product: 'whatsapp', recipient_type: 'individual', @@ -705,7 +653,6 @@ export class BusinessStartupService extends ChannelStartupService { return await this.post(content, 'messages'); } if (message['locationMessage']) { - this.logger.verbose('Sending message'); content = { messaging_product: 'whatsapp', recipient_type: 'individual', @@ -722,7 +669,6 @@ export class BusinessStartupService extends ChannelStartupService { return await this.post(content, 'messages'); } if (message['contacts']) { - this.logger.verbose('Sending message'); content = { messaging_product: 'whatsapp', recipient_type: 'individual', @@ -735,7 +681,6 @@ export class BusinessStartupService extends ChannelStartupService { return await this.post(content, 'messages'); } if (message['conversation']) { - this.logger.verbose('Sending message'); content = { messaging_product: 'whatsapp', recipient_type: 'individual', @@ -750,7 +695,6 @@ export class BusinessStartupService extends ChannelStartupService { return await this.post(content, 'messages'); } if (message['media']) { - this.logger.verbose('Sending message'); content = { messaging_product: 'whatsapp', recipient_type: 'individual', @@ -766,7 +710,6 @@ export class BusinessStartupService extends ChannelStartupService { return await this.post(content, 'messages'); } if (message['audio']) { - this.logger.verbose('Sending message'); content = { messaging_product: 'whatsapp', recipient_type: 'individual', @@ -780,7 +723,6 @@ export class BusinessStartupService extends ChannelStartupService { return await this.post(content, 'messages'); } if (message['buttons']) { - this.logger.verbose('Sending message'); content = { messaging_product: 'whatsapp', recipient_type: 'individual', @@ -805,7 +747,6 @@ export class BusinessStartupService extends ChannelStartupService { return await this.post(content, 'messages'); } if (message['sections']) { - this.logger.verbose('Sending message'); content = { messaging_product: 'whatsapp', recipient_type: 'individual', @@ -841,7 +782,6 @@ export class BusinessStartupService extends ChannelStartupService { return await this.post(content, 'messages'); } if (message['template']) { - this.logger.verbose('Sending message'); content = { messaging_product: 'whatsapp', recipient_type: 'individual', @@ -880,14 +820,12 @@ export class BusinessStartupService extends ChannelStartupService { this.logger.log(messageRaw); - this.logger.verbose('Sending data to webhook in event SEND_MESSAGE'); this.sendDataWebhook(Events.SEND_MESSAGE, messageRaw); if (this.configService.get('CHATWOOT').ENABLED && this.localChatwoot.enabled && !isChatwoot) { this.chatwootService.eventWhatsapp(Events.SEND_MESSAGE, { instanceName: this.instance.name }, messageRaw); } - this.logger.verbose('Inserting message in database'); await this.prismaRepository.message.create({ data: messageRaw, }); @@ -901,7 +839,6 @@ export class BusinessStartupService extends ChannelStartupService { // Send Message Controller public async textMessage(data: SendTextDto, isChatwoot = false) { - this.logger.verbose('Sending text message'); const res = await this.sendMessageWithTyping( data.number, { @@ -935,17 +872,10 @@ export class BusinessStartupService extends ChannelStartupService { protected async prepareMediaMessage(mediaMessage: MediaMessage) { try { - this.logger.verbose('Preparing media message'); - - const mediaType = mediaMessage.mediatype + 'Message'; - this.logger.verbose('Media type: ' + mediaType); - if (mediaMessage.mediatype === 'document' && !mediaMessage.fileName) { - this.logger.verbose('If media type is document and file name is not defined then'); const regex = new RegExp(/.*\/(.+?)\./); const arrayMatch = regex.exec(mediaMessage.media); mediaMessage.fileName = arrayMatch[1]; - this.logger.verbose('File name: ' + mediaMessage.fileName); } if (mediaMessage.mediatype === 'image' && !mediaMessage.fileName) { @@ -983,7 +913,6 @@ export class BusinessStartupService extends ChannelStartupService { prepareMedia.mimetype = mimetype; - this.logger.verbose('Generating wa message from content'); return prepareMedia; } catch (error) { this.logger.error(error); @@ -992,18 +921,14 @@ export class BusinessStartupService extends ChannelStartupService { } public async mediaMessage(data: SendMediaDto, isChatwoot = false) { - this.logger.verbose('Sending media message'); const message = await this.prepareMediaMessage(data.mediaMessage); return await this.sendMessageWithTyping(data.number, { ...message }, data?.options, isChatwoot); } public async processAudio(audio: string, number: string) { - this.logger.verbose('Processing audio'); - number = number.replace(/\D/g, ''); const hash = `${number}-${new Date().getTime()}`; - this.logger.verbose('Hash to audio name: ' + hash); let mimetype: string; @@ -1030,15 +955,12 @@ export class BusinessStartupService extends ChannelStartupService { } public async audioWhatsapp(data: SendAudioDto, isChatwoot = false) { - this.logger.verbose('Sending audio whatsapp'); - const message = await this.processAudio(data.audioMessage.audio, data.number); return await this.sendMessageWithTyping(data.number, { ...message }, data?.options, isChatwoot); } public async buttonMessage(data: SendButtonDto) { - this.logger.verbose('Sending button message'); const embeddedMedia: any = {}; let mediatype = 'TEXT'; @@ -1079,7 +1001,6 @@ export class BusinessStartupService extends ChannelStartupService { } public async locationMessage(data: SendLocationDto) { - this.logger.verbose('Sending location message'); return await this.sendMessageWithTyping( data.number, { @@ -1095,7 +1016,6 @@ export class BusinessStartupService extends ChannelStartupService { } public async listMessage(data: SendListDto) { - this.logger.verbose('Sending list message'); const sectionsItems = { title: data.listMessage.sections.map((list) => list.title), }; @@ -1129,7 +1049,6 @@ export class BusinessStartupService extends ChannelStartupService { } public async templateMessage(data: SendTemplateDto, isChatwoot = false) { - this.logger.verbose('Sending text message'); const res = await this.sendMessageWithTyping( data.number, { @@ -1146,36 +1065,29 @@ export class BusinessStartupService extends ChannelStartupService { } public async contactMessage(data: SendContactDto) { - this.logger.verbose('Sending contact message'); const message: any = {}; const vcard = (contact: ContactMessage) => { - this.logger.verbose('Creating vcard'); let result = 'BEGIN:VCARD\n' + 'VERSION:3.0\n' + `N:${contact.fullName}\n` + `FN:${contact.fullName}\n`; if (contact.organization) { - this.logger.verbose('Organization defined'); result += `ORG:${contact.organization};\n`; } if (contact.email) { - this.logger.verbose('Email defined'); result += `EMAIL:${contact.email}\n`; } if (contact.url) { - this.logger.verbose('Url defined'); result += `URL:${contact.url}\n`; } if (!contact.wuid) { - this.logger.verbose('Wuid defined'); contact.wuid = this.createJid(contact.phoneNumber); } result += `item1.TEL;waid=${contact.wuid}:${contact.phoneNumber}\n` + 'item1.X-ABLabel:Celular\n' + 'END:VCARD'; - this.logger.verbose('Vcard created'); return result; }; @@ -1214,7 +1126,6 @@ export class BusinessStartupService extends ChannelStartupService { } public async reactionMessage(data: SendReactionDto) { - this.logger.verbose('Sending reaction message'); return await this.sendMessageWithTyping(data.reactionMessage.key.remoteJid, { reactionMessage: { key: data.reactionMessage.key, @@ -1226,11 +1137,9 @@ export class BusinessStartupService extends ChannelStartupService { public async getBase64FromMediaMessage(data: any) { try { const msg = data.message; - this.logger.verbose('Getting base64 from media message'); const messageType = msg.messageType + 'Message'; const mediaMessage = msg.message[messageType]; - this.logger.verbose('Media message downloaded'); return { mediaType: msg.messageType, fileName: mediaMessage?.fileName, diff --git a/src/api/services/integration.service.ts b/src/api/services/integration.service.ts index d6d2bc9c..0b1e4182 100644 --- a/src/api/services/integration.service.ts +++ b/src/api/services/integration.service.ts @@ -11,7 +11,6 @@ export class IntegrationService { private readonly logger = new Logger(IntegrationService.name); public create(instance: InstanceDto, data: IntegrationDto) { - this.logger.verbose('create integration: ' + instance.instanceName); this.waMonitor.waInstances[instance.instanceName].setIntegration(data); return { integration: { ...instance, integration: data } }; @@ -19,7 +18,6 @@ export class IntegrationService { public async find(instance: InstanceDto): Promise { try { - this.logger.verbose('find integration: ' + instance.instanceName); const result = await this.waMonitor.waInstances[instance.instanceName].findIntegration(); if (Object.keys(result).length === 0) { diff --git a/src/api/services/monitor.service.ts b/src/api/services/monitor.service.ts index 79cdee44..dcac763c 100644 --- a/src/api/services/monitor.service.ts +++ b/src/api/services/monitor.service.ts @@ -33,8 +33,6 @@ export class WAMonitoringService { private readonly chatwootCache: CacheService, private readonly baileysCache: CacheService, ) { - this.logger.verbose('instance created'); - this.removeInstance(); this.noConnection(); @@ -53,8 +51,6 @@ export class WAMonitoringService { public delInstanceTime(instance: string) { const time = this.configService.get('DEL_INSTANCE'); if (typeof time === 'number' && time > 0) { - this.logger.verbose(`Instance "${instance}" don't have connection, will be removed in ${time} minutes`); - setTimeout(async () => { if (this.waInstances[instance]?.connectionStatus?.state !== 'open') { if (this.waInstances[instance]?.connectionStatus?.state === 'connecting') { @@ -76,7 +72,6 @@ export class WAMonitoringService { } public async instanceInfo(instanceName?: string, arrayReturn = false) { - this.logger.verbose('get instance info'); if (instanceName && !this.waInstances[instanceName]) { throw new NotFoundException(`Instance "${instanceName}" not found`); } @@ -85,7 +80,6 @@ export class WAMonitoringService { for await (const [key, value] of Object.entries(this.waInstances)) { if (value) { - this.logger.verbose('get instance info: ' + key); let chatwoot: any; const urlServer = this.configService.get('SERVER').URL; @@ -111,8 +105,6 @@ export class WAMonitoringService { } if (value.connectionStatus.state === 'open') { - this.logger.verbose('instance: ' + key + ' - connectionStatus: open'); - const instanceData = { instance: { instanceName: key, @@ -141,8 +133,6 @@ export class WAMonitoringService { instances.push(instanceData); } else { - this.logger.verbose('instance: ' + key + ' - connectionStatus: ' + value.connectionStatus.state); - const instanceData = { instance: { instanceName: key, @@ -170,8 +160,6 @@ export class WAMonitoringService { } } - this.logger.verbose('return instance info: ' + instances.length); - if (arrayReturn) { return [instances.find((i) => i.instance.instanceName === instanceName) ?? instances]; } @@ -179,7 +167,6 @@ export class WAMonitoringService { } public async instanceInfoById(instanceId?: string, number?: string) { - this.logger.verbose('get instance info'); let instanceName: string; if (instanceId) { instanceName = await this.prismaRepository.instance.findFirst({ where: { id: instanceId } }).then((r) => r?.name); @@ -207,10 +194,7 @@ export class WAMonitoringService { } public async cleaningUp(instanceName: string) { - this.logger.verbose('cleaning up instance: ' + instanceName); - if (this.db.ENABLED && this.db.SAVE_DATA.INSTANCE) { - this.logger.verbose('cleaning up instance in database: ' + instanceName); await this.prismaRepository.instance.update({ where: { name: instanceName }, data: { connectionStatus: 'close' }, @@ -221,12 +205,10 @@ export class WAMonitoringService { } if (this.redis.REDIS.ENABLED && this.redis.REDIS.SAVE_INSTANCES) { - this.logger.verbose('cleaning up instance in redis: ' + instanceName); await this.cache.delete(instanceName); return; } - this.logger.verbose('cleaning up instance in files: ' + instanceName); if (this.providerSession?.ENABLED) { await this.providerFiles.removeSession(instanceName); } @@ -235,7 +217,6 @@ export class WAMonitoringService { public async cleaningStoreFiles(instanceName: string) { if (!this.db.ENABLED) { - this.logger.verbose('cleaning store files instance: ' + instanceName); if (this.providerSession?.ENABLED) { await this.providerFiles.removeSession(instanceName); } @@ -259,8 +240,6 @@ export class WAMonitoringService { return; } - this.logger.verbose('cleaning store database instance: ' + instanceName); - await this.prismaRepository.session.deleteMany({ where: { sessionId: instanceName } }); await this.prismaRepository.chat.deleteMany({ where: { instanceId: instanceName } }); @@ -285,8 +264,6 @@ export class WAMonitoringService { } public async loadInstance() { - this.logger.verbose('Loading instances'); - try { if (this.providerSession.ENABLED) { await this.loadInstancesFromProvider(); @@ -370,31 +347,23 @@ export class WAMonitoringService { } } - this.logger.verbose('Instance loaded: ' + name); await instance.connectToWhatsapp(); - this.logger.verbose('connectToWhatsapp: ' + name); this.waInstances[name] = instance; } private async loadInstancesFromRedis() { - this.logger.verbose('Redis enabled'); const keys = await this.cache.keys(); if (keys?.length > 0) { - this.logger.verbose('Reading instance keys and setting instances'); await Promise.all(keys.map((k) => this.setInstance(k.split(':')[1], k.split(':')[2]))); - } else { - this.logger.verbose('No instance keys found'); } } private async loadInstancesFromDatabasePostgres() { - this.logger.verbose('Database enabled'); const instances = await this.prismaRepository.instance.findMany(); if (instances.length === 0) { - this.logger.verbose('No instances found'); return; } @@ -402,11 +371,9 @@ export class WAMonitoringService { } private async loadInstancesFromProvider() { - this.logger.verbose('Provider in files enabled'); const [instances] = await this.providerFiles.allInstances(); if (!instances?.data) { - this.logger.verbose('No instances found'); return; } @@ -414,21 +381,17 @@ export class WAMonitoringService { } private async loadInstancesFromFiles() { - this.logger.verbose('Store in files enabled'); const dir = opendirSync(INSTANCE_DIR, { encoding: 'utf-8' }); const instanceDirs = []; for await (const dirent of dir) { if (dirent.isDirectory()) { instanceDirs.push(dirent.name); - } else { - this.logger.verbose('No instance files found'); } } await Promise.all( instanceDirs.map(async (instanceName) => { - this.logger.verbose('Reading instance files and setting instances: ' + instanceName); const files = readdirSync(join(INSTANCE_DIR, instanceName), { encoding: 'utf-8' }); if (files.length === 0) { @@ -442,16 +405,13 @@ export class WAMonitoringService { private removeInstance() { this.eventEmitter.on('remove.instance', async (instanceName: string) => { - this.logger.verbose('remove instance: ' + instanceName); try { - this.logger.verbose('instance: ' + instanceName + ' - removing from memory'); this.waInstances[instanceName] = undefined; } catch (error) { this.logger.error(error); } try { - this.logger.verbose('request cleaning up instance: ' + instanceName); this.cleaningUp(instanceName); this.cleaningStoreFiles(instanceName); } finally { @@ -459,10 +419,8 @@ export class WAMonitoringService { } }); this.eventEmitter.on('logout.instance', async (instanceName: string) => { - this.logger.verbose('logout instance: ' + instanceName); try { if (this.configService.get('CHATWOOT').ENABLED) this.waInstances[instanceName]?.clearCacheChatwoot(); - this.logger.verbose('request cleaning up instance: ' + instanceName); this.cleaningUp(instanceName); } finally { this.logger.warn(`Instance "${instanceName}" - LOGOUT`); @@ -471,13 +429,10 @@ export class WAMonitoringService { } private noConnection() { - this.logger.verbose('checking instances without connection'); this.eventEmitter.on('no.connection', async (instanceName) => { try { - this.logger.verbose('logging out instance: ' + instanceName); await this.waInstances[instanceName]?.client?.logout('Log out instance: ' + instanceName); - this.logger.verbose('close connection instance: ' + instanceName); this.waInstances[instanceName]?.client?.ws?.close(); this.waInstances[instanceName].instance.qrcode = { count: 0 }; @@ -495,7 +450,6 @@ export class WAMonitoringService { } private delInstanceFiles() { - this.logger.verbose('cron to delete instance files started'); setInterval(async () => { const dir = opendirSync(INSTANCE_DIR, { encoding: 'utf-8' }); for await (const dirent of dir) { @@ -511,7 +465,6 @@ export class WAMonitoringService { }); } }); - this.logger.verbose('instance files deleted: ' + dirent.name); } } }, 3600 * 1000 * 2); @@ -520,10 +473,8 @@ export class WAMonitoringService { private async deleteTempInstances() { const shouldDelete = this.configService.get('DEL_TEMP_INSTANCES'); if (!shouldDelete) { - this.logger.verbose('Temp instances deletion is disabled'); return; } - this.logger.verbose('Cleaning up temp instances'); const instancesClosed = await this.prismaRepository.instance.findMany({ where: { connectionStatus: 'close' } }); let tempInstances = 0; @@ -531,6 +482,6 @@ export class WAMonitoringService { tempInstances++; this.eventEmitter.emit('remove.instance', instance.id, 'inner'); }); - this.logger.verbose('Temp instances removed: ' + tempInstances); + this.logger.log('Temp instances removed: ' + tempInstances); } } diff --git a/src/api/services/proxy.service.ts b/src/api/services/proxy.service.ts index b2f70fc1..e65d6758 100644 --- a/src/api/services/proxy.service.ts +++ b/src/api/services/proxy.service.ts @@ -11,7 +11,6 @@ export class ProxyService { private readonly logger = new Logger(ProxyService.name); public create(instance: InstanceDto, data: ProxyDto) { - this.logger.verbose('create proxy: ' + instance.instanceName); this.waMonitor.waInstances[instance.instanceName].setProxy(data); return { proxy: { ...instance, proxy: data } }; @@ -19,7 +18,6 @@ export class ProxyService { public async find(instance: InstanceDto): Promise { try { - this.logger.verbose('find proxy: ' + instance.instanceName); const result = await this.waMonitor.waInstances[instance.instanceName].findProxy(); if (Object.keys(result).length === 0) { diff --git a/src/api/services/settings.service.ts b/src/api/services/settings.service.ts index 035a988b..20ba41f8 100644 --- a/src/api/services/settings.service.ts +++ b/src/api/services/settings.service.ts @@ -9,7 +9,6 @@ export class SettingsService { private readonly logger = new Logger(SettingsService.name); public create(instance: InstanceDto, data: SettingsDto) { - this.logger.verbose('create settings: ' + instance.instanceName); this.waMonitor.waInstances[instance.instanceName].setSettings(data); return { settings: { ...instance, settings: data } }; @@ -17,7 +16,6 @@ export class SettingsService { public async find(instance: InstanceDto): Promise { try { - this.logger.verbose('find settings: ' + instance.instanceName); const result = await this.waMonitor.waInstances[instance.instanceName].findSettings(); if (Object.keys(result).length === 0) { diff --git a/src/api/services/webhook.service.ts b/src/api/services/webhook.service.ts index 9494c3ad..2a087baf 100644 --- a/src/api/services/webhook.service.ts +++ b/src/api/services/webhook.service.ts @@ -11,7 +11,6 @@ export class WebhookService { private readonly logger = new Logger(WebhookService.name); public create(instance: InstanceDto, data: WebhookDto) { - this.logger.verbose('create webhook: ' + instance.instanceName); this.waMonitor.waInstances[instance.instanceName].setWebhook(data); return { webhook: { ...instance, webhook: data } }; @@ -19,7 +18,6 @@ export class WebhookService { public async find(instance: InstanceDto): Promise { try { - this.logger.verbose('find webhook: ' + instance.instanceName); const result = await this.waMonitor.waInstances[instance.instanceName].findWebhook(); if (Object.keys(result).length === 0) { diff --git a/src/cache/rediscache.client.ts b/src/cache/rediscache.client.ts index b3f8dead..350f05e2 100644 --- a/src/cache/rediscache.client.ts +++ b/src/cache/rediscache.client.ts @@ -41,10 +41,8 @@ class Redis { }); try { - this.logger.verbose('connecting new redis client'); this.client.connect(); this.connected = true; - this.logger.verbose('connected to new redis client'); } catch (e) { this.connected = false; this.logger.error('redis connect exception caught: ' + e); diff --git a/src/libs/prisma.connect.ts b/src/libs/prisma.connect.ts index 2bf72571..73b1cd21 100644 --- a/src/libs/prisma.connect.ts +++ b/src/libs/prisma.connect.ts @@ -12,8 +12,6 @@ export const prismaServer = (() => { logger.verbose('connecting'); const db = new PrismaClient(); - logger.verbose('connected in ' + db.$connect); - process.on('beforeExit', () => { logger.verbose('instance destroyed'); db.$disconnect();