class Virgil::SDK::Client::HTTP::BaseConnection
Base API service connection class.
Constants
- ERRORS
Attributes
access_token[RW]
base_url[RW]
Public Class Methods
new(access_token, base_url)
click to toggle source
Constructs new BaseConnection
object.
# File lib/virgil/sdk/client/http/base_connection.rb, line 52 def initialize(access_token, base_url) self.access_token = access_token self.base_url = base_url end
Public Instance Methods
send_request(request)
click to toggle source
Sends http request to the endpoint.
Args:
request: HTTP::Request object containing sending request data.
Returns:
Deserialized ruby object from the json response.
Raises:
HTTPError with error message decoded from errors dictionary.
# File lib/virgil/sdk/client/http/base_connection.rb, line 67 def send_request(request) response = faraday_connection.run_request( request.method, request.endpoint, request.body, request.headers ) return response.body if response.success? raise ApiError.new(error_message(response)) end
Private Instance Methods
error_message(response)
click to toggle source
# File lib/virgil/sdk/client/http/base_connection.rb, line 95 def error_message(response) error_message = nil error_body = response.body if error_body error_body = JSON.parse(error_body) unless error_body.is_a? Hash error_code = error_body['code'] || (error_body['error'] && error_body['error']['code']) error_message = self.class::ERRORS[error_code] || error_code end # token = attempt.confirm(emailConfirmation) error_message = "Error code is #{response.status}" unless error_message error_message end
faraday_connection()
click to toggle source
# File lib/virgil/sdk/client/http/base_connection.rb, line 82 def faraday_connection @faraday_connection ||= Faraday.new(url: base_url) do |connection| if access_token connection.authorization :VIRGIL, access_token end connection.request :json connection.response :json, :content_type => /\bjson$/ connection.response :follow_redirects connection.adapter Faraday.default_adapter end end