Class: Jumbotron::Deserializers::Public::Game

Inherits:
CommandTower::Deserializers::ApplicationDeserializer
  • Object
show all
Defined in:
app/deserializers/jumbotron/deserializers/public/game.rb

Instance Method Summary collapse

Instance Method Details

#call(params) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'app/deserializers/jumbotron/deserializers/public/game.rb', line 7

def call(params)
  id_raw = unwrap(fetch_param(params, :id))
  return id_raw if deserializer_result?(id_raw)
  return failure(errors: [{ code: "invalid_request", message: "id is required" }]) if id_raw.nil?

  id = unwrap(require_integer(id_raw, field: "id", min: 1))
  return id if deserializer_result?(id)

  include_raw = unwrap(fetch_param(params, :include))
  return include_raw if deserializer_result?(include_raw)

  includes = unwrap(Includes.parse(include_raw))
  return includes if deserializer_result?(includes)

  success(Jumbotron::Public::GameRequest.new(id: id, includes: includes))
end