mirror of
https://github.com/EvolutionAPI/evolution-api.git
synced 2025-07-24 17:38:40 -06:00
remove lógica de paginação duplicada no fetchChats que causa resultados vazios quando skip > 0
Problema: O método fetchChats estava aplicando a lógica de paginação duas vezes, causando resultados vazios ao usar o parâmetro skip com valores maiores que 0. Causa Raiz: A query SQL já aplica LIMIT e OFFSET corretamente O código JavaScript então aplica .slice(skip, skip + take) nos resultados já paginados Este "offset duplo" faz com que o slice tente acessar posições do array que não existem Exemplo do bug: Requisição: {"take": 10, "skip": 10} SQL: LIMIT 10 OFFSET 10 → retorna chats 11-20 (10 itens) JS: .slice(10, 20) → tenta pegar posições 10-20 de um array com apenas 10 itens Resultado: [] (array vazio) Solução: Removida a lógica de paginação JavaScript redundante (linhas 796-800) já que a query SQL já manipula a paginação corretamente com LIMIT e OFFSET. Arquivos Alterados: src/api/services/channel.service.ts Testes: ✅ {"take": 10, "skip": 0} - Retorna os primeiros 10 chats ✅ {"take": 10, "skip": 10} - Retorna chats 11-20 (anteriormente retornava []) ✅ {"take": 5, "skip": 15} - Retorna chats 16-20 (anteriormente retornava []) Impacto: Corrige a funcionalidade de paginação para todos os valores de skip > 0 Mantém compatibilidade com versões anteriores Sem mudanças que quebrem implementações existentes
This commit is contained in:
parent
39606240da
commit
6954472070
@ -802,12 +802,6 @@ export class ChannelStartupService {
|
||||
};
|
||||
});
|
||||
|
||||
if (query?.take && query?.skip) {
|
||||
const skip = query.skip || 0;
|
||||
const take = query.take || 20;
|
||||
return mappedResults.slice(skip, skip + take);
|
||||
}
|
||||
|
||||
return mappedResults;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user