Skip to main content

Visão Geral

A API de Quiz fornece endpoints para o sistema de recuperação de streaks do The News. Os quizzes são gerados automaticamente a partir das edições diárias (matinal e noturna/NIGHT) da newsletter, permitindo que usuários recuperem seus streaks perdidos respondendo perguntas sobre o conteúdo.

Base URL

Autenticação

A maioria dos endpoints requer autenticação via JWT token. Endpoints administrativos estão separados e claramente indicados.

Headers Obrigatórios

Recursos Principais

1. Quizzes para Usuários

  • Listar quizzes disponíveis (últimos 3 dias)
  • Visualizar perguntas do quiz
  • Submeter respostas
  • Histórico de tentativas
  • Recuperação automática de streak

2. Administração

  • Gerar quiz diário manualmente
  • Criar quiz para data específica
  • Listar todos os quizzes
  • Deletar quizzes

Regras do Sistema

Endpoints Disponíveis

Rotas Autenticadas (Usuário)

Rotas Administrativas

Fluxo de Recuperação de Streak

Quando o usuário passa no quiz (acertos >= 6):
  1. Sistema verifica as respostas do usuário
  2. Calcula pontuação total
  3. Se passou, registra leitura histórica automaticamente
  4. Streak é recuperado para a data do quiz
  5. Tentativa é salva com streakRecovered: true
O quiz é gerado automaticamente todos os dias às 12h (horário de Brasília) com base na edição do dia anterior da newsletter.

Tratamento de Erros

A API retorna erros padronizados no seguinte formato:

Códigos de Status HTTP

Geração Automática de Quizzes

O sistema gera quizzes automaticamente todos os dias às 7h UTC usando:
  1. Beehiiv API: Busca a edição do dia anterior (matinal e noturna)
  2. OpenAI GPT-4o: Gera 10 perguntas sobre o conteúdo de cada edição
  3. Cloudflare D1: Armazena quizzes e tentativas

Edições Suportadas

Cada dia pode gerar dois quizzes: um para a edição matinal e outro para a edição noturna (NIGHT).
Aos domingos não há edição da newsletter, portanto o quiz de segunda-feira (matinal) é baseado na edição de sábado. Não há quiz noturno para domingos.

Suporte

Para dúvidas ou problemas com a API, entre em contato: