Skip to content

feat(games): endpoint para cadastrar um jogo (POST /games) #2

@freemanpivo

Description

@freemanpivo

Descrição

Adicionar endpoint para cadastrar um novo jogo.

Requisitos:

  • POST /games
  • Validação do payload
  • Persistência em storage (arquivo data/games_seed.json ou DB futuro)
  • Retornar 201 Created com o recurso criado ou 400/422 em 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 /games implementado
  • Validação mínima (title, platform obrigatórios)
  • Retorna 201 e JSON do jogo criado
  • Persistência no arquivo data/games_seed.json
  • Retorna 400 em caso de payload inválido
  • Testes unitários cobrindo happy path e validações
  • OpenAPI atualizado com POST /games

Tasks

  • Definir Game struct
  • Criar handler CreateGame e registrar app.Post("/games", CreateGame)
  • Validar payload (title, platform)
  • Persistir no arquivo data/games_seed.json com 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

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions