Skip to content

Commit 6954472

Browse files
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
1 parent 3960624 commit 6954472

File tree

1 file changed

+0
-6
lines changed

1 file changed

+0
-6
lines changed

src/api/services/channel.service.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -802,12 +802,6 @@ export class ChannelStartupService {
802802
};
803803
});
804804

805-
if (query?.take && query?.skip) {
806-
const skip = query.skip || 0;
807-
const take = query.take || 20;
808-
return mappedResults.slice(skip, skip + take);
809-
}
810-
811805
return mappedResults;
812806
}
813807

0 commit comments

Comments
 (0)