-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationfeatureNew featureNew featuregood first issueGood for newcomersGood for newcomers
Description
Descrição
Adicionar endpoint para cadastrar um novo jogo.
Requisitos:
POST /games- Validação do payload
- Persistência em storage (arquivo
data/games_seed.jsonou DB futuro) - Retornar
201 Createdcom o recurso criado ou400/422em caso de erro
Payload esperado:
{
"id": "string-ulid",
"name": "string",
"releaseDate": "YYYY-MM-DD",
"platform": "string",
"gender": "string",
"subGender": "string",
"rating": 0
}Critérios de Aceite
- Endpoint
POST /gamesimplementado - Validação mínima (
title,platformobrigatórios) - Retorna
201e JSON do jogo criado - Persistência no arquivo
data/games_seed.json - Retorna
400em caso de payload inválido - Testes unitários cobrindo happy path e validações
- OpenAPI atualizado com POST
/games
Tasks
- Definir
Gamestruct - Criar handler
CreateGamee registrarapp.Post("/games", CreateGame) - Validar payload (
title,platform) - Persistir no arquivo
data/games_seed.jsoncom lock (mutex) - Atualizar
openapi.yaml - Criar testes
internal/games/games_create_test.go
Exemplo de Requisição
POST /games
Content-Type: application/json
{
"name": "The Legend of Go",
"releaseDate": "2025-01-01",
"platform": "PC",
"gender": "Programing",
"subGender": "Simple",
"rating": 0
}Resposta:
{
"id": "01K9JYHR1HA9RNE7QVBXMMW4TH",
"name": "The Legend of Go",
"releaseDate": "2025-01-01",
"platform": "PC",
"gender": "Programing",
"subGender": "Simple",
"rating": 0
}
Metadata
Metadata
Assignees
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationfeatureNew featureNew featuregood first issueGood for newcomersGood for newcomers