class JSONAPI::Hanami::Deserialization::DeserializationMiddleware
Constants
- JSONAPI_KEYS
- ROUTER_PARAMS
- ROUTER_PARSED_BODY
Public Class Methods
new(app, key, klass)
click to toggle source
# File lib/jsonapi/hanami/deserialization.rb, line 33 def initialize(app, key, klass) @app = app @deserializable_key = key @deserializable_class = klass end
Public Instance Methods
call(env)
click to toggle source
# File lib/jsonapi/hanami/deserialization.rb, line 39 def call(env) body = env[ROUTER_PARSED_BODY] deserialized_hash = @deserializable_class.call(body) params = env[ROUTER_PARAMS] # TODO(beauby): Actually replace the request body upstream instead # of hacking it here. params[:_jsonapi] = {} JSONAPI_KEYS.each do |key| params[:_jsonapi][key] = params.delete(key) if params.key?(key) end params[@deserializable_key] = deserialized_hash @app.call(env) end