class StandardAPI::Middleware::QueryEncoding

Constants

HTTP_METHOD_OVERRIDE_HEADER
MSGPACK_MIME_TYPE

Public Class Methods

new(app) click to toggle source
# File lib/standard_api/middleware/query_encoding.rb, line 19
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/standard_api/middleware/query_encoding.rb, line 23
def call(env)
  if !env[Rack::QUERY_STRING].empty? && env[HTTP_METHOD_OVERRIDE_HEADER] == MSGPACK_MIME_TYPE
    env[Rack::RACK_REQUEST_QUERY_STRING] = env[Rack::QUERY_STRING]
    env[Rack::RACK_REQUEST_QUERY_HASH] = MessagePack.unpack(CGI.unescape(env[Rack::QUERY_STRING]))
  end

  @app.call(env)
end