Class: Drillbit::Middleware::ParameterParser

Inherits:
Object
  • Object
show all
Defined in:
lib/drillbit/middleware/parameter_parser.rb

Instance Method Summary collapse

Constructor Details

#initialize(app) ⇒ ParameterParser

Returns a new instance of ParameterParser.



9
10
11
# File 'lib/drillbit/middleware/parameter_parser.rb', line 9

def initialize(app)
  @app = app
end

Instance Method Details

#call(env) ⇒ Object

:reek:FeatureEnvy



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/drillbit/middleware/parameter_parser.rb', line 14

def call(env)
  env['QUERY_STRING'] = underscore_query_string(env['QUERY_STRING'])

  if env['CONTENT_LENGTH'].to_i > 0 && env['CONTENT_TYPE'] =~ /json/
    if env['rack.input']
      env['rack.input'] = StringIO.new(underscore_request_parameters(env['rack.input']))
    elsif env['RACK_INPUT']
      env['RACK_INPUT'] = underscore_request_parameters(env['RACK_INPUT'])
    end
  end

  @app.call(env)
rescue JSON::ParserError => _error
  return Responses::InvalidRequestBody.call(env)
end