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 da newsletter, permitindo que usuários recuperem seus streaks perdidos respondendo perguntas sobre o conteúdo.

Base URL

https://sac-waffle-v2.theo-110.workers.dev

Autenticação

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

Headers Obrigatórios

Authorization: Bearer {token}
Content-Type: application/json

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

RegraValor
Perguntas por quiz10
Opções por pergunta4
Mínimo de acertos para passar6 (60%)
Tentativas por quiz1
Dias recuperáveisAté 3 dias anteriores

Endpoints Disponíveis

Rotas Autenticadas (Usuário)

EndpointDescrição
GET /quiz/availableLista quizzes disponíveis
GET /quiz/:idObtém quiz com perguntas
POST /quiz/submitSubmete respostas do quiz
GET /quiz/historyHistórico de tentativas

Rotas Administrativas

EndpointDescrição
POST /quiz/admin/generateForça geração do quiz diário
POST /quiz/admin/createCria quiz para data específica
GET /quiz/admin/listLista todos os quizzes
DELETE /quiz/admin/:idDeleta quiz específico

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:
{
  "success": false,
  "message": "Descrição do erro"
}

Códigos de Status HTTP

CódigoDescrição
200Sucesso
201Criado com sucesso
400Requisição inválida
401Não autorizado
403Acesso negado (já tentou o quiz)
404Quiz não encontrado
409Conflito (quiz já existe para data)
500Erro interno do servidor

Geração Automática de Quizzes

O sistema gera quizzes automaticamente usando:
  1. Beehiiv API: Busca a última edição da newsletter
  2. OpenAI GPT-4o: Gera 10 perguntas sobre o conteúdo
  3. Cloudflare D1: Armazena quizzes e tentativas
Aos domingos não há edição da newsletter, portanto o quiz de segunda-feira é baseado na edição de sábado.

Suporte

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