class Flapjack::Gateways::JSONAPI::Middleware::JsonParamsParser
Public Instance Methods
call(env)
click to toggle source
# File lib/flapjack/gateways/jsonapi/middleware/json_params_parser.rb, line 10 def call(env) t = type(env) if ['POST', 'PATCH', 'DELETE'].include?(env["REQUEST_METHOD"]) && env['rack.input'] && !input_parsed?(env) && type_match?(t) env['rack.request.form_input'] = env['rack.input'] json_data = env['rack.input'].read env['rack.input'].rewind data = json_data.empty? ? {} : Flapjack.load_json(json_data) env['rack.request.form_hash'] = data end app.call(env) end
input_parsed?(env)
click to toggle source
# File lib/flapjack/gateways/jsonapi/middleware/json_params_parser.rb, line 24 def input_parsed? env env['rack.request.form_input'].eql?(env['rack.input']) end
type(env)
click to toggle source
# File lib/flapjack/gateways/jsonapi/middleware/json_params_parser.rb, line 28 def type(env) return if env['CONTENT_TYPE'].nil? env['CONTENT_TYPE'].split(/\s*[;,]\s*/, 2).first end
type_match?(t)
click to toggle source
# File lib/flapjack/gateways/jsonapi/middleware/json_params_parser.rb, line 33 def type_match?(t) Flapjack::Gateways::JSONAPI::JSONAPI_MEDIA_TYPE.eql?(t) end