stop using @env
in the GET / POST methods
I want to implement this with something besides `@env` in the future, so lets stop directly referencing it.
This commit is contained in:
parent
ec9c237acc
commit
c4c5918b68
@ -323,7 +323,9 @@ def session_options=(options)
|
||||
|
||||
# Override Rack's GET method to support indifferent access
|
||||
def GET
|
||||
@env["action_dispatch.request.query_parameters"] ||= normalize_encode_params(super || {})
|
||||
get_header("action_dispatch.request.query_parameters") do |k|
|
||||
set_header k, normalize_encode_params(super || {})
|
||||
end
|
||||
rescue Rack::Utils::ParameterTypeError, Rack::Utils::InvalidParameterError => e
|
||||
raise ActionController::BadRequest.new(:query, e)
|
||||
end
|
||||
@ -331,7 +333,9 @@ def GET
|
||||
|
||||
# Override Rack's POST method to support indifferent access
|
||||
def POST
|
||||
@env["action_dispatch.request.request_parameters"] ||= normalize_encode_params(super || {})
|
||||
get_header("action_dispatch.request.request_parameters") do |k|
|
||||
self.request_parameters = normalize_encode_params(super || {})
|
||||
end
|
||||
rescue Rack::Utils::ParameterTypeError, Rack::Utils::InvalidParameterError => e
|
||||
raise ActionController::BadRequest.new(:request, e)
|
||||
end
|
||||
@ -352,6 +356,7 @@ def local?
|
||||
end
|
||||
|
||||
def request_parameters=(params)
|
||||
raise if params.nil?
|
||||
set_header("action_dispatch.request.request_parameters".freeze, params)
|
||||
end
|
||||
|
||||
|
@ -37,7 +37,9 @@ def initialize(app, parsers = {})
|
||||
def call(env)
|
||||
request = Request.new(env)
|
||||
|
||||
request.request_parameters = parse_formatted_parameters(request, @parsers)
|
||||
parse_formatted_parameters(request, @parsers) do |params|
|
||||
request.request_parameters = params
|
||||
end
|
||||
|
||||
@app.call(env)
|
||||
end
|
||||
@ -48,7 +50,7 @@ def parse_formatted_parameters(request, parsers)
|
||||
|
||||
strategy = parsers.fetch(request.content_mime_type) { return nil }
|
||||
|
||||
strategy.call(request.raw_post)
|
||||
yield strategy.call(request.raw_post)
|
||||
|
||||
rescue => e # JSON or Ruby code block errors
|
||||
logger(request).debug "Error occurred while parsing request parameters.\nContents:\n\n#{request.raw_post}"
|
||||
|
Loading…
Reference in New Issue
Block a user