Class: CoreLibrary::FaradayClient
- Inherits:
-
HttpClient
- Object
- HttpClient
- CoreLibrary::FaradayClient
- Defined in:
- lib/apimatic-faraday-client-adapter/faraday_client.rb
Overview
An implementation of HttpClient.
Instance Attribute Summary collapse
-
#connection ⇒ Object
readonly
The attribute readers for properties.
-
#response_factory ⇒ Object
readonly
The attribute readers for properties.
Instance Method Summary collapse
-
#convert_response(response, http_request) ⇒ Object
Method overridden from HttpClient.
-
#create_connection(client_configuration) ⇒ Object
Method to initialize connection.
-
#execute(http_request) ⇒ Object
Method overridden from HttpClient.
-
#initialize(client_configuration) ⇒ FaradayClient
constructor
The constructor.
Constructor Details
#initialize(client_configuration) ⇒ FaradayClient
The constructor.
16 17 18 19 20 21 22 23 |
# File 'lib/apimatic-faraday-client-adapter/faraday_client.rb', line 16 def initialize(client_configuration) @response_factory = client_configuration.response_factory @connection = if client_configuration.connection.nil? create_connection(client_configuration) else client_configuration.connection end end |
Instance Attribute Details
#connection ⇒ Object (readonly)
The attribute readers for properties.
12 13 14 |
# File 'lib/apimatic-faraday-client-adapter/faraday_client.rb', line 12 def connection @connection end |
#response_factory ⇒ Object (readonly)
The attribute readers for properties.
12 13 14 |
# File 'lib/apimatic-faraday-client-adapter/faraday_client.rb', line 12 def response_factory @response_factory end |
Instance Method Details
#convert_response(response, http_request) ⇒ Object
Method overridden from HttpClient.
69 70 71 72 |
# File 'lib/apimatic-faraday-client-adapter/faraday_client.rb', line 69 def convert_response(response, http_request) @response_factory.create(response.status, response.reason_phrase, response.headers, response.body, http_request) end |
#create_connection(client_configuration) ⇒ Object
Method to initialize connection.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/apimatic-faraday-client-adapter/faraday_client.rb', line 27 def create_connection(client_configuration) Faraday.new do |faraday| faraday.use Faraday::HttpCache, serializer: Marshal if client_configuration.cache faraday.use Faraday::FollowRedirects::Middleware faraday.request :gzip faraday.request :multipart faraday.request :url_encoded faraday.ssl[:ca_file] = Certifi.where faraday.ssl[:verify] = client_configuration.verify faraday.request :retry, max: client_configuration.max_retries, interval: client_configuration.retry_interval, backoff_factor: client_configuration.backoff_factor, retry_statuses: client_configuration.retry_statuses, methods: client_configuration.retry_methods, retry_if: proc { |env, _exc| env.request.context['forced_retry'] ||= false } faraday.adapter client_configuration.adapter faraday.[:params_encoder] = Faraday::FlatParamsEncoder faraday.[:timeout] = client_configuration.timeout if client_configuration.timeout.positive? end end |
#execute(http_request) ⇒ Object
Method overridden from HttpClient.
53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/apimatic-faraday-client-adapter/faraday_client.rb', line 53 def execute(http_request) response = @connection.send( http_request.http_method.downcase, http_request.query_url ) do |request| request.headers = http_request.headers.map { |k, v| [k.to_s, v.to_s] } request..context ||= {} request..context.merge!(http_request.context) request.body = http_request.parameters end convert_response(response, http_request) end |