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.
42 43 44 45 46 |
# File 'lib/jsonapi/rails/action_controller.rb', line 42 def initialize(app, key, klass) @app = app @deserializable_key = key @deserializable_class = klass end |
Instance Method Details
#call(env) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/jsonapi/rails/action_controller.rb', line 48 def call(env) request = Rack::Request.new(env) body = JSON.parse(request.body.read) deserializable = @deserializable_class.new(body) env[REVERSE_MAPPING_KEY] = deserializable.reverse_mapping (env[REQUEST_PARAMETERS_KEY] ||= {}).tap do |request_parameters| request_parameters[@deserializable_key] = deserializable.to_hash end @app.call(env) end |