Class: Payrex::HttpClient

Inherits:
Object
  • Object
show all
Defined in:
lib/http_client.rb

Instance Method Summary collapse

Constructor Details

#initialize(api_key:, base_url:) ⇒ HttpClient

Returns a new instance of HttpClient.



3
4
5
6
# File 'lib/http_client.rb', line 3

def initialize(api_key:, base_url:)
  @api_key = api_key
  @base_url = base_url
end

Instance Method Details

#request(method:, path:, params: {}) ⇒ Object

Raises:

  • (StandardError)


8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/http_client.rb', line 8

def request(method:, path:, params: {})
  uri = URI("#{@base_url}/#{path}")

  request = build_request(method: method, params: params, uri: uri)

  response = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == "https") { |http| http.request(request) }

  raise StandardError.new(response.to_s) if response.body.nil?

  handle_error(response) if failed?(response)

  Payrex::ApiResource.new(JSON.parse(response.body))
end