Class: Flapjack::Gateways::JSONAPI::Middleware::JsonParamsParser
- Inherits:
-
Struct
- Object
- Struct
- Flapjack::Gateways::JSONAPI::Middleware::JsonParamsParser
- Defined in:
- lib/flapjack/gateways/jsonapi/middleware/json_params_parser.rb
Instance Attribute Summary collapse
-
#app ⇒ Object
Returns the value of attribute app.
Instance Method Summary collapse
Instance Attribute Details
#app ⇒ Object
Returns the value of attribute app
9 10 11 |
# File 'lib/flapjack/gateways/jsonapi/middleware/json_params_parser.rb', line 9 def app @app end |
Instance Method Details
#call(env) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 |
# 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) ⇒ Boolean
24 25 26 |
# 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) ⇒ Object
28 29 30 31 |
# 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) ⇒ Boolean
33 34 35 |
# 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 |