class Flapjack::Gateways::JSONAPI::Middleware::ArrayParamFixer

Public Instance Methods

call(env) click to toggle source
# 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