Class: Europeana::API::FaradayMiddleware::ParameterRepetition
- Inherits:
-
Faraday::Middleware
- Object
- Faraday::Middleware
- Europeana::API::FaradayMiddleware::ParameterRepetition
- Defined in:
- lib/europeana/api/faraday_middleware/request/parameter_repetition.rb
Overview
Handles multiple URL params with the same name
Europeana’s APIs expect params with the same name to appear in URL queries like ‘?qf=this&qf=that`, but Faraday constructs them the Rack/Rails way, like `?qf[]=this&qf=that`. This middleware constructs them to the former format, using `Rack::Utils.build_query`.
Instance Method Summary collapse
Instance Method Details
#call(env) ⇒ Object
13 14 15 16 |
# File 'lib/europeana/api/faraday_middleware/request/parameter_repetition.rb', line 13 def call(env) repeat_query_parameters(env) @app.call env end |
#repeat_query_parameters(env) ⇒ Object
18 19 20 21 |
# File 'lib/europeana/api/faraday_middleware/request/parameter_repetition.rb', line 18 def repeat_query_parameters(env) query = Rack::Utils.parse_nested_query(env.url.query) env.url.query = Rack::Utils.build_query(query) end |