Class: Identisure::ClientBuilder

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

Instance Method Summary collapse

Constructor Details

#initialize(client_id, client_secret) ⇒ ClientBuilder

Returns a new instance of ClientBuilder.



37
38
39
40
41
42
43
44
# File 'lib/identisure/client.rb', line 37

def initialize(client_id, client_secret)
  @client_id = client_id
  @client_secret = client_secret
  @environment = Environment::PRODUCTION
  @base_url = nil
  @http_client = nil
  @timeout = 30
end

Instance Method Details

#base_url(url) ⇒ Object



51
52
53
54
# File 'lib/identisure/client.rb', line 51

def base_url(url)
  @base_url = url
  self
end

#build ⇒ Object



69
70
71
72
73
# File 'lib/identisure/client.rb', line 69

def build
  base = @base_url || Environment.base_url(@environment)
  conn = @http_client || Faraday.new
  Client.new(Transport.new(conn, base, @client_id, @client_secret, @timeout))
end

#environment(env) ⇒ Object



46
47
48
49
# File 'lib/identisure/client.rb', line 46

def environment(env)
  @environment = env
  self
end

#http_client(conn) ⇒ Object



56
57
58
59
# File 'lib/identisure/client.rb', line 56

def http_client(conn)
  @http_client = conn
  self
end

#inspect ⇒ Object



75
# File 'lib/identisure/client.rb', line 75

def inspect = "#<#{self.class.name} client_id=#{@client_id.inspect}>"

#timeout(seconds) ⇒ Object

Timeout in seconds for each HTTP request. Defaults to 30.

Raises:

  • (ArgumentError)


62
63
64
65
66
67
# File 'lib/identisure/client.rb', line 62

def timeout(seconds)
  raise ArgumentError, 'Timeout must be positive' unless seconds.positive?

  @timeout = seconds
  self
end