Class: Flapjack::Gateways::JSONAPI::Middleware::ArrayParamFixer

Inherits:
Struct
  • Object
show all
Defined in:
lib/flapjack/gateways/jsonapi/middleware/array_param_fixer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#appObject

Returns the value of attribute app

Returns:

  • (Object)

    the current value of app



11
12
13
# File 'lib/flapjack/gateways/jsonapi/middleware/array_param_fixer.rb', line 11

def app
  @app
end

Instance Method Details

#call(env) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/flapjack/gateways/jsonapi/middleware/array_param_fixer.rb', line 12

def call(env)
  if (env["REQUEST_METHOD"] == 'GET') && env["rack.request.query_string"].nil?
    qs = env["QUERY_STRING"]
    fixed_qs = qs.to_s.sub(/^filter=/, "filter[]=")
                      .gsub(/&filter=/, "&filter[]=")

    env["rack.request.query_string"] = qs # avoid Rack re-parsing it
    env["rack.request.query_hash"]   = ::Rack::Utils.parse_nested_query(fixed_qs)
  end
  app.call(env)
end