Method: WhatsAppCloudApi::FaradayClient#create_connection

Defined in:
lib/whats_app_cloud_api/http/faraday_client.rb

#create_connection(timeout:, max_retries:, retry_interval:, backoff_factor:, retry_statuses:, retry_methods:, adapter:, cache: false, verify: true) ⇒ Object

Method to initialize connection.



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/whats_app_cloud_api/http/faraday_client.rb', line 33

def create_connection(timeout:, max_retries:, retry_interval:,
                      backoff_factor:, retry_statuses:, retry_methods:,
                      adapter:, cache: false, verify: true)
  Faraday.new do |faraday|
    faraday.use Faraday::HttpCache, serializer: Marshal if 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] = verify
    faraday.request :retry, max: max_retries, interval: retry_interval,
                            backoff_factor: backoff_factor,
                            retry_statuses: retry_statuses,
                            methods: retry_methods,
                            retry_if: proc { |env, _exc|
                                        env.request.context['forced_retry'] ||= false
                                      }
    faraday.adapter adapter
    faraday.options[:params_encoder] = Faraday::FlatParamsEncoder
    faraday.options[:timeout] = timeout if timeout.positive?
  end
end