Class: Jumbotron::Workflows::ReadGameWorkflow
- Inherits:
-
CommandTower::Workflows::ApplicationWorkflow
- Object
- CommandTower::Workflows::ApplicationWorkflow
- Jumbotron::Workflows::ReadGameWorkflow
- Includes:
- PublicRead
- Defined in:
- app/workflows/jumbotron/workflows/read_game_workflow.rb
Instance Method Summary collapse
Methods included from PublicRead
#map_deserializer_failure, #map_service_failure
Instance Method Details
#call(**kwargs) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'app/workflows/jumbotron/workflows/read_game_workflow.rb', line 10 def call(**kwargs) deserialized = Deserializers::Public::Game.call(kwargs) return map_deserializer_failure(deserialized) unless deserialized.success? request = deserialized.input read = Services::Public::ReadGame.call(game_id: request.id) return map_service_failure(read) unless read.success? game = read.data[:game] included = Services::Public::LoadIncludedLines.call(games: [game], includes: request.includes) return map_service_failure(included) unless included.success? assembled = Services::Public::AssemblePublicGame.call( game: game, includes: request.includes, current_lines: included.data[:current_lines], consensus_lines: included.data[:consensus_lines] ) return map_service_failure(assembled) unless assembled.success? success(payload: { game: assembled.data[:public_game] }, http_status: :ok) end |