Class: JSONAPI::Rails::ActionController::Deserialization
- Inherits:
-
Object
- Object
- JSONAPI::Rails::ActionController::Deserialization
- Defined in:
- lib/jsonapi/rails/action_controller.rb
Constant Summary collapse
- REQUEST_PARAMETERS_KEY =
'action_dispatch.request.request_parameters'.freeze
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app, key, klass) ⇒ Deserialization
constructor
A new instance of Deserialization.
Constructor Details
#initialize(app, key, klass) ⇒ Deserialization
Returns a new instance of Deserialization.
35 36 37 38 39 |
# File 'lib/jsonapi/rails/action_controller.rb', line 35 def initialize(app, key, klass) @app = app @deserializable_key = key @deserializable_class = klass end |
Instance Method Details
#call(env) ⇒ Object
41 42 43 44 45 46 47 48 49 50 |
# File 'lib/jsonapi/rails/action_controller.rb', line 41 def call(env) request = Rack::Request.new(env) body = JSON.parse(request.body.read) deserialized_hash = @deserializable_class.call(body) (env[REQUEST_PARAMETERS_KEY] ||= {}).tap do |request_parameters| request_parameters[@deserializable_key] = deserialized_hash end @app.call(env) end |