$skip não está funcionando no endpoint de get last threads/messages

Estou tentando paginar os endpoints de get last threads e get last messages mas o parâmetro $skip não funciona. Sempre retorna as mesmas coisas.

Get last threads:

{  
  "id": "{{$guid}}",
  "method": "get",
  "uri": "/threads?$take=1&$skip=5"
}

Get last messages:

{
    "id": "{{$guid}}",
    "method": "get",
    "uri": "/threads/{{identity}}?$take=1&$skip=30"
}
1 Curtida

Olá @Gabriel_Silva_Branda, tudo bom?

Neste endpoint realmente não utilizamos o skip para paginar :sweat:
Segue abaixo o processo de paginação para cada endpoint :tipping_hand_man:t5:

Get last threads:

Este endpoint possui o parâmetro messageDate que pode ser utilizado para indicar a data máxima de busca, além disso, esse endpoint não possui um filtro de ordenação. Dito isto, a paginação desde endpoint precisa ser feito atualizando o messageDate a cada interação até que o período inicial seja atingindo.

Segue passo a passo, suponha o seguinte intervalo de 2021-03-01 até 2021-03-03:

  1. Envie a requisição Get last threads com a data máxima do intervalo desejada de busca, ex:
{
"id": "{{$guid}}",
"method": "get",
"uri": "/threads?$take=100&messageDate=2021-03-03T23:23:58.859Z&refreshExpiredMedia=true"
}
  1. Dado o retorno, repita o passo abaixo até que não haja nenhuma mensagem anterior à data do intervalo inicial ( 2021-03-01) ou retorno vazio, faça:

Recupera a data da última mensagem, e atualize no body da requisição no parâmetro messageDate e envie novamente a requisição, sempre salvando cada retorno

  1. Caso haja mensagem anterior à data do intervalo inicial (2021-03-01) na lista de mensagem recuperada, retire-as e finalize a busca.

Get last messages:

  1. Inicialmente busque as últimas mensagens do contato desejado, utilizando o Get last messages
{
"id": "{{$guid}}",
"method": "get",
"uri": "/threads/{identity}}?$take=100&direction=desc&storageDate=2021-03-03T23:23:58.859Z"
}
  1. Identifique a última mensagem e salve os campos 'date' e 'id', o date representa o storageDate e o por sua vez, o id representa messageId utilizado a seguir.

  1. Enquanto o resultado retornado é igual ao $take, substitua as variáveis lastMessageId e lastStorageDate para cada requisição e repita ciclicamente:
{

    "id": "{{$guid}}",
    "method": "get",
    "uri": "/threads/{contact-identity}}?$take=100&direction=desc&messageId={lastMessageId}&storageDate={lastStorageDate}"

}
3 Curtidas

Consegui usar dessa forma, muito obrigado @Caiof!

Mas a documentação dos endpoints fala do parâmetro $skip, seria bacana retirar de lá.

4 Curtidas