From 27900c214f88792a9ca367cd01e3fa91f465106f Mon Sep 17 00:00:00 2001 From: Judson Cairo Date: Wed, 7 Feb 2024 18:42:12 -0300 Subject: [PATCH] Extracted profile picture request from contacts.upsert function --- src/whatsapp/services/whatsapp.service.ts | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/whatsapp/services/whatsapp.service.ts b/src/whatsapp/services/whatsapp.service.ts index 22f7e7b2..f5081939 100644 --- a/src/whatsapp/services/whatsapp.service.ts +++ b/src/whatsapp/services/whatsapp.service.ts @@ -1657,7 +1657,7 @@ export class WAStartupService { ); this.logger.verbose('Verifying if contacts exists in database to insert'); - const contactsRaw: ContactRaw[] = []; + let contactsRaw: ContactRaw[] = []; for (const contact of contacts) { if (contactsRepository.has(contact.id)) { @@ -1667,7 +1667,7 @@ export class WAStartupService { contactsRaw.push({ id: contact.id, pushName: contact?.name || contact?.verifiedName || contact.id.split('@')[0], - profilePictureUrl: (await this.profilePicture(contact.id)).profilePictureUrl, + profilePictureUrl: null, owner: this.instance.name, }); } @@ -1682,6 +1682,23 @@ export class WAStartupService { this.chatwootService.addHistoryContacts({ instanceName: this.instance.name }, contactsRaw); chatwootImport.importHistoryContacts({ instanceName: this.instance.name }, this.localChatwoot); } + + // Update profile pictures + contactsRaw = []; + for await (const contact of contacts) { + contactsRaw.push({ + id: contact.id, + pushName: contact?.name || contact?.verifiedName || contact.id.split('@')[0], + profilePictureUrl: (await this.profilePicture(contact.id)).profilePictureUrl, + owner: this.instance.name, + }); + } + + this.logger.verbose('Sending data to webhook in event CONTACTS_UPDATE'); + this.sendDataWebhook(Events.CONTACTS_UPSERT, contactsRaw); + + this.logger.verbose('Updating contacts in database'); + this.repository.contact.update(contactsRaw, this.instance.name, database.SAVE_DATA.CONTACTS); } catch (error) { this.logger.error(error); }