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



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 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) }

  return nil if response.body.nil?

  handle_error(response) if failed?(response)

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