From 1ad51a434b003989269f302a3a9253ecd57760fc Mon Sep 17 00:00:00 2001 From: Rafael Nicolas Date: Wed, 22 Oct 2025 23:52:48 -0300 Subject: [PATCH] fix(chat): apply where filters correctly in findContacts endpoint MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Anteriormente, o endpoint findContacts processava apenas o campo remoteJid da cláusula where, ignorando outros campos como id e pushName. Alterações: - Atualiza método fetchContacts para processar todos os campos do where (id, remoteJid, pushName) - Adiciona campo remoteJid ao contactValidateSchema para validação adequada - Garante isolamento multi-tenant mantendo filtro por instanceId Esta correção permite que usuários filtrem contatos por qualquer um dos campos suportados ao invés de sempre retornar todos os contatos da instância. --- src/api/services/channel.service.ts | 19 +++++++++++-------- src/validate/chat.schema.ts | 3 ++- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/api/services/channel.service.ts b/src/api/services/channel.service.ts index 947f9c39..d1b6eed5 100644 --- a/src/api/services/channel.service.ts +++ b/src/api/services/channel.service.ts @@ -490,20 +490,23 @@ export class ChannelStartupService { } public async fetchContacts(query: Query) { - const remoteJid = query?.where?.remoteJid - ? query?.where?.remoteJid.includes('@') - ? query.where?.remoteJid - : createJid(query.where?.remoteJid) - : null; - - const where = { + const where: any = { instanceId: this.instanceId, }; - if (remoteJid) { + if (query?.where?.remoteJid) { + const remoteJid = query.where.remoteJid.includes('@') ? query.where.remoteJid : createJid(query.where.remoteJid); where['remoteJid'] = remoteJid; } + if (query?.where?.id) { + where['id'] = query.where.id; + } + + if (query?.where?.pushName) { + where['pushName'] = query.where.pushName; + } + const contactFindManyArgs: Prisma.ContactFindManyArgs = { where, }; diff --git a/src/validate/chat.schema.ts b/src/validate/chat.schema.ts index dba27995..7dae4453 100644 --- a/src/validate/chat.schema.ts +++ b/src/validate/chat.schema.ts @@ -195,8 +195,9 @@ export const contactValidateSchema: JSONSchema7 = { _id: { type: 'string', minLength: 1 }, pushName: { type: 'string', minLength: 1 }, id: { type: 'string', minLength: 1 }, + remoteJid: { type: 'string', minLength: 1 }, }, - ...isNotEmpty('_id', 'id', 'pushName'), + ...isNotEmpty('_id', 'id', 'pushName', 'remoteJid'), }, }, };