Refactor fetching participants for group in WhatsApp service

This commit is contained in:
Judson Cairo 2024-02-14 16:25:38 -03:00
parent 525daff5fe
commit 6995e8a451

View File

@ -4077,7 +4077,19 @@ export class WAStartupService {
this.logger.verbose('Fetching participants for group: ' + id.groupJid);
try {
const participants = (await this.client.groupMetadata(id.groupJid)).participants;
return { participants };
const contacts = await this.repository.contact.findManyById({
owner: this.instance.name,
ids: participants.map((p) => p.id),
});
const parsedParticipants = participants.map((participant) => {
const contact = contacts.find((c) => c.id === participant.id);
return {
...participant,
name: participant.name ?? contact?.pushName,
imgUrl: participant.imgUrl ?? contact?.profilePictureUrl,
};
});
return { participants: parsedParticipants };
} catch (error) {
throw new NotFoundException('No participants', error.toString());
}