Class: Jumio::HttpClient

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

Overview

Makes HTTPS requests to Jumio JSON apis

Instance Method Summary collapse

Constructor Details

#initialize(token: nil, secret: nil, base_url: nil) ⇒ HttpClient

Returns a new instance of HttpClient.

Parameters:

  • token (String, nil) (defaults to: nil)
  • secret (String, nil) (defaults to: nil)
  • base_url (String, nil) (defaults to: nil)


15
16
17
18
19
# File 'lib/jumio/http_client.rb', line 15

def initialize(token: nil, secret: nil, base_url: nil)
  @api_token = (token || Jumio.api.token)
  @api_secret = (secret || Jumio.api.secret)
  @api_base_url = (base_url || Jumio.api.base_url)
end

Instance Method Details

#get(url) ⇒ Hash

Returns The response.

Parameters:

  • url (String)

Returns:

  • (Hash)

    The response

Raises:

  • (RecordNotFound)

    On 404 response

  • (Net::HTTPError)

    On JSON response parsing error



25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/jumio/http_client.rb', line 25

def get(url)
  uri = URI.join(@api_base_url, url)
  response = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http|
    req = Net::HTTP::Get.new(uri)
    req.basic_auth(@api_token, @api_secret)
    req['Accept'] = 'application/json'
    req['Content-Type'] = 'application/json'
    req['User-Agent'] = user_agent
    http.request(req)
  end
  handle_response(response)
end

#post(url, body) ⇒ Hash

Returns The response.

Parameters:

  • url (String)
  • body (String)

Returns:

  • (Hash)

    The response

Raises:

  • (RecordNotFound)

    On 404 response

  • (Net::HTTPError)

    On JSON response parsing error



43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/jumio/http_client.rb', line 43

def post(url, body)
  uri = URI.join(@api_base_url, url)
  response = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http|
    req = Net::HTTP::Post.new(uri)
    req.basic_auth(@api_token, @api_secret)
    req['Accept'] = 'application/json'
    req['Content-Type'] = 'application/json'
    req['User-Agent'] = user_agent
    req.body = body.to_json
    http.request(req)
  end
  handle_response(response)
end