Class: PaygatePk::HTTP::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/paygate_pk/http/client.rb

Overview

Simple HTTP client using Faraday

Instance Method Summary collapse

Constructor Details

#initialize(base_url:, headers: {}, timeouts: {}, retry_conf: {}, logger: nil) ⇒ Client

Returns a new instance of Client.



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/paygate_pk/http/client.rb', line 12

def initialize(base_url:, headers: {}, timeouts: {}, retry_conf: {}, logger: nil)
  @conn = Faraday.new(url: base_url) do |f|
    f.request :retry,
              max: retry_conf[:max] || 2,
              interval: retry_conf[:interval] || 0.2,
              backoff_factor: retry_conf[:backoff_factor] || 2.0,
              retry_statuses: retry_conf[:retry_statuses] || [429, 500, 502, 503, 504]

    f.request :url_encoded
    f.response :raise_error
    f.adapter Faraday.default_adapter
  end

  @headers  = headers
  @timeouts = timeouts
  @logger   = logger
end

Instance Method Details

#get(path, params: {}, headers: {}) ⇒ Object



34
35
36
# File 'lib/paygate_pk/http/client.rb', line 34

def get(path, params: {}, headers: {})
  request(:get, path, params: params, headers: headers)
end

#post(path, json: nil, form: nil, headers: {}) ⇒ Object



30
31
32
# File 'lib/paygate_pk/http/client.rb', line 30

def post(path, json: nil, form: nil, headers: {})
  request(:post, path, json: json, form: form, headers: headers)
end