Documentação

CurvaDeMana Docs

Referência da API

Rotas internas de busca, decks e coleção.

Atualizado em 11 de junho de 2026

As rotas internas ficam em src/app/api. Todas que alteram dados validam a sessão e o corpo da requisição com Zod antes de gravar. As respostas são JSON, exceto as exportações, que devolvem texto para download.

Autenticação

  • POST /api/cadastro cria uma conta. Corpo: name, email, password. Faz hash da senha com bcrypt.
  • GET e POST /api/auth/[...nextauth] são tratados pelo Auth.js (login, logout, sessão).

Cartas

  • GET /api/cards/typeahead?q=texto retorna sugestões por nome. O parâmetro opcional identity=GU restringe à identidade de cor, usado pelo deck builder quando há comandante.
  • GET /api/cards/prints?name=Nome consulta a Scryfall e devolve as impressões alternativas de uma carta, para a troca de arte.
  • POST /api/cards/suggestions recebe identidade, formato e os ids já no deck, e devolve as cartas mais jogadas que cabem e ainda não estão na lista.

Decks

  • POST /api/decks cria um deck.
  • PATCH /api/decks/[id] atualiza nome, descrição, formato ou capa.
  • DELETE /api/decks/[id] remove o deck.
  • POST /api/decks/[id]/cards adiciona, ajusta, move entre boards ou define comandante. Aceita delta (incremento) ou quantity (valor absoluto); quantity zero remove a carta.
  • POST /api/decks/[id]/import importa uma lista em texto, somando ou substituindo.
  • GET /api/decks/[id]/export baixa a lista do deck como arquivo de texto.

Coleção

  • POST /api/collection adiciona uma carta à coleção.
  • PATCH /api/collection/[entryId] ajusta quantidade, foil, condição ou edição; quantidade zero remove.
  • DELETE /api/collection/[entryId] remove a entrada.
  • POST /api/collection/import importa CSV ou lista simples.
  • GET /api/collection/export baixa a coleção em CSV.

Propriedade dos recursos

Decks e entradas de coleção só podem ser lidos ou alterados pelo dono. Essa checagem é centralizada: decks usam o helper ownDeck (src/lib/deck-auth.ts), que carrega o recurso e confirma que pertence à sessão atual antes de qualquer operação.