Class: Virgil::SDK::Client::HTTP::BaseConnection

Inherits:
Object
  • Object
show all
Defined in:
lib/virgil/sdk/client/http/base_connection.rb

Overview

Base API service connection class.

Direct Known Subclasses

CardsServiceConnection

Defined Under Namespace

Classes: ApiError

Constant Summary collapse

ERRORS =
{}

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(access_token, base_url) ⇒ BaseConnection

Constructs new BaseConnection object.



52
53
54
55
# 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

Instance Attribute Details

#access_tokenObject

Returns the value of attribute access_token.



49
50
51
# File 'lib/virgil/sdk/client/http/base_connection.rb', line 49

def access_token
  @access_token
end

#base_urlObject

Returns the value of attribute base_url.



49
50
51
# File 'lib/virgil/sdk/client/http/base_connection.rb', line 49

def base_url
  @base_url
end

Instance Method Details

#send_request(request) ⇒ Object

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.

Raises:



67
68
69
70
71
72
73
74
75
76
77
78
# 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