Skip to content

feat(user): cadastro de usuário + lista de jogos concluidos #3

@freemanpivo

Description

@freemanpivo

Descrição

Permitir que usuários se cadastrem e mantenham uma lista de jogos concluídos.

Endpoints:

  • POST /users — cria usuário
  • GET /users/{id} — obtém usuário e sua lista
  • POST /users/{id}/completions — adiciona jogo concluído
  • GET /users/{id}/completions — lista jogos concluídos

Modelo:

{
  "id": "uuid",
  "username": "string",
  "email": "string",
  "completed": ["game-id", "game-id2"]
}

Critérios de Aceite

  • POST /users cadastra usuário
  • POST /users/{id}/completions adiciona jogo à lista
  • GET /users/{id}/completions retorna lista de jogos concluídos
  • Valida se o game_id existe (opcionalmente)
  • Persistência inicial no arquivo data/users.json
  • Testes unitários cobrindo CRUD e lista
  • OpenAPI atualizado com os endpoints de usuário

Tasks

  • Criar package internal/users com handlers CRUD
  • Definir struct User
  • Implementar persistência simples (arquivo JSON + mutex)
  • Registrar rotas no app (app.Post("/users", ...))
  • Criar testes internal/users/users_test.go
  • Atualizar openapi.yaml

Exemplos de Requisição

Criar usuário

POST /users
{
  "username": "pedro",
  "email": "[email protected]"
}

Adicionar jogo concluído

POST /users/{id}/completions
{
  "game_id": "uuid-do-jogo"
}

Listar concluídos

GET /users/{id}/completions

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions