Class: Saddle::Middleware::Request::UrlEncoded
- Inherits:
-
Faraday::Middleware
- Object
- Faraday::Middleware
- Saddle::Middleware::Request::UrlEncoded
- Defined in:
- lib/saddle/middleware/request/url_encoded.rb
Overview
Make sure you set request = :urlencoded for it to be activated.
Constant Summary collapse
- CONTENT_TYPE =
'Content-Type'.freeze
- URL_ENCODED_MIME_TYPE =
'application/x-www-form-urlencoded'.freeze
- MULTIPART_MIME_TYPE =
'multipart/form-data'.freeze
- VALID_MIME_TYPES =
[URL_ENCODED_MIME_TYPE, MULTIPART_MIME_TYPE]
- DEFAULT_MULTIPART_BOUNDARY =
"-^---_---^-".freeze
Instance Method Summary collapse
Instance Method Details
#call(env) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/saddle/middleware/request/url_encoded.rb', line 26 def call(env) if env[:saddle][:request_style] == :urlencoded # Make sure we're working with a valid body that's not a String if env[:body] and !env[:body].respond_to?(:to_str) if has_multipart?(env[:body]) env[:request][:boundary] ||= DEFAULT_MULTIPART_BOUNDARY env[:request_headers][CONTENT_TYPE] ||= MULTIPART_MIME_TYPE env[:request_headers][CONTENT_TYPE] += ";boundary=#{env[:request][:boundary]}" env[:body] = create_multipart(env, env[:body]) else env[:request_headers][CONTENT_TYPE] ||= URL_ENCODED_MIME_TYPE env[:body] = Faraday::Utils::ParamsHash[env[:body]].to_query end end end @app.call env end |