Skip to main content
GET
/
streaks
/
ranking
/
global
/
with-position
curl --request GET \
  --url 'https://backend.testeswaffle.org/streaks/ranking/global/with-position' \
  --header 'Authorization: Bearer SEU_JWT_TOKEN'
{
  "success": true,
  "data": {
    "ranking": [
      {
        "position": 1,
        "displayName": "João Silva",
        "email": "jo***@gmail.com",
        "currentStreak": 365,
        "maxStreak": 365,
        "lastInteractionDate": "19/01/2025 08:30:15"
      },
      {
        "position": 2,
        "displayName": "Carlos Usuário",
        "email": "ca***@exemplo.com",
        "currentStreak": 280,
        "maxStreak": 300,
        "lastInteractionDate": "19/01/2025 07:45:22"
      }
    ],
    "lastUpdated": "2025-01-19T11:30:00.000Z",
    "cacheInfo": {
      "cached": true,
      "ttl": 61200
    }
  }
}

Descrição

Obtém o ranking global dos top 100 leitores e inclui a posição específica do usuário autenticado, mesmo que ele esteja fora do top 100. Esta rota combina o ranking geral com informações personalizadas do usuário.

Autenticação

Esta rota requer autenticação JWT. O usuário é identificado pelo token fornecido no header Authorization: Bearer <token>.

Response

success
boolean
Indica se a operação foi bem-sucedida
data
object
curl --request GET \
  --url 'https://backend.testeswaffle.org/streaks/ranking/global/with-position' \
  --header 'Authorization: Bearer SEU_JWT_TOKEN'
{
  "success": true,
  "data": {
    "ranking": [
      {
        "position": 1,
        "displayName": "João Silva",
        "email": "jo***@gmail.com",
        "currentStreak": 365,
        "maxStreak": 365,
        "lastInteractionDate": "19/01/2025 08:30:15"
      },
      {
        "position": 2,
        "displayName": "Carlos Usuário",
        "email": "ca***@exemplo.com",
        "currentStreak": 280,
        "maxStreak": 300,
        "lastInteractionDate": "19/01/2025 07:45:22"
      }
    ],
    "lastUpdated": "2025-01-19T11:30:00.000Z",
    "cacheInfo": {
      "cached": true,
      "ttl": 61200
    }
  }
}

Comportamento

Quando o usuário está no Top 100

  • Retorna apenas o ranking global normal
  • Usuário aparece destacado na lista do ranking
  • Campo userPosition não é incluído

Quando o usuário está fora do Top 100

  • Retorna o ranking global dos top 100
  • Adiciona campo userPosition com informações específicas do usuário
  • Calcula posição real do usuário no ranking geral (considerando todos os leitores ativos)

Casos Especiais

  • Se o usuário não tem streak ativo (currentStreak = 0), userPosition será null
  • Se o usuário não existe no sistema, apenas o ranking global é retornado
  • Cache é compartilhado com a rota de ranking global para melhor performance

Notas de Implementação

  • Utiliza o mesmo cache do ranking global
  • Posição do usuário é calculada em tempo real quando necessário
  • Filtro de 30 dias para cálculo de posição (vs 7 dias para o ranking global)

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Response

200 - application/json

Ranking com posição do usuário obtido com sucesso

success
boolean
data
object