Class: TreezorConnect::Client
- Inherits:
-
Object
- Object
- TreezorConnect::Client
- Defined in:
- lib/treezor_connect/client.rb
Instance Attribute Summary collapse
-
#conn ⇒ Object
Returns the value of attribute conn.
-
#oauth_client ⇒ Object
Returns the value of attribute oauth_client.
Class Method Summary collapse
- .active_client ⇒ Object
- .build_default_conn ⇒ Object
- .default_client ⇒ Object
- .default_conn ⇒ Object
Instance Method Summary collapse
- #execute_request(method, path, headers: {}, params: {}) ⇒ Object
-
#initialize(conn = nil) ⇒ Client
constructor
A new instance of Client.
Constructor Details
#initialize(conn = nil) ⇒ Client
Returns a new instance of Client.
7 8 9 10 11 12 13 14 |
# File 'lib/treezor_connect/client.rb', line 7 def initialize(conn = nil) self.conn = conn || self.class.default_conn self.oauth_client ||= OAuth2::Client.new( TreezorConnect.client_id, TreezorConnect.client_secret, site: TreezorConnect.api_base_url ) end |
Instance Attribute Details
#conn ⇒ Object
Returns the value of attribute conn.
5 6 7 |
# File 'lib/treezor_connect/client.rb', line 5 def conn @conn end |
#oauth_client ⇒ Object
Returns the value of attribute oauth_client.
5 6 7 |
# File 'lib/treezor_connect/client.rb', line 5 def oauth_client @oauth_client end |
Class Method Details
.active_client ⇒ Object
16 17 18 |
# File 'lib/treezor_connect/client.rb', line 16 def self.active_client Thread.current[:treezor_connect_client] ||= default_client end |
.build_default_conn ⇒ Object
40 41 42 43 44 45 |
# File 'lib/treezor_connect/client.rb', line 40 def self.build_default_conn http = HTTP.persistent(TreezorConnect.api_base_url) return http.use(logging: { logger: Logger.new($stdout) }) unless ENV['ENABLE_HTTP_LOGGING'].nil? http end |
.default_client ⇒ Object
20 21 22 23 |
# File 'lib/treezor_connect/client.rb', line 20 def self.default_client Thread.current[:treezor_connect_client_default_client] ||= TreezorConnect::Client.new(default_conn) end |
.default_conn ⇒ Object
25 26 27 |
# File 'lib/treezor_connect/client.rb', line 25 def self.default_conn Thread.current[:treezor_connect_client_default_conn] ||= build_default_conn end |
Instance Method Details
#execute_request(method, path, headers: {}, params: {}) ⇒ Object
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/treezor_connect/client.rb', line 29 def execute_request(method, path, headers: {}, params: {}) headers['Authorization'] = "Bearer #{access_token}" response = conn.public_send(method, path, params: params[:query], form: params[:form], json: params[:body], headers:) http_body = JSON.parse(response.to_s) http_status = response.status raise_api_error(http_status:, http_body:) unless http_status.success? response end |