-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
Descrição
Permitir que usuários se cadastrem e mantenham uma lista de jogos concluídos.
Endpoints:
POST /users— cria usuárioGET /users/{id}— obtém usuário e sua listaPOST /users/{id}/completions— adiciona jogo concluídoGET /users/{id}/completions— lista jogos concluídos
Modelo:
{
"id": "uuid",
"username": "string",
"email": "string",
"completed": ["game-id", "game-id2"]
}Critérios de Aceite
-
POST /userscadastra usuário -
POST /users/{id}/completionsadiciona jogo à lista -
GET /users/{id}/completionsretorna lista de jogos concluídos - Valida se o
game_idexiste (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/userscom 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}/completionsReactions are currently unavailable