class CurrencyCloud::Session

Constants

ENVIRONMENTS

Attributes

api_key[R]
environment[R]
login_id[R]
on_behalf_of[RW]
token[RW]

Public Class Methods

new(environment, login_id, api_key, token) click to toggle source
# File lib/currency_cloud/session.rb, line 17
def initialize(environment, login_id, api_key, token)
  @environment = environment
  @login_id = login_id
  @api_key = api_key

  if token
    self.class.validate_environment(environment)
    @token = token
  else
    authenticate
  end
end
validate_environment(environment) click to toggle source
# File lib/currency_cloud/session.rb, line 12
def self.validate_environment(environment)
  return if ENVIRONMENTS.key?(environment)
  raise "'#{environment}' is not a valid environment. Must be one of: #{ENVIRONMENTS.keys.join(', ')}"
end

Public Instance Methods

authenticate() click to toggle source
# File lib/currency_cloud/session.rb, line 38
def authenticate
  validate
  params = { login_id: login_id, api_key: api_key }
  CurrencyCloud.token = @token = request.post('authenticate/api', params, should_retry: false)['auth_token']
end
close() click to toggle source
# File lib/currency_cloud/session.rb, line 34
def close
  request.post('authenticate/close_session')
end
environment_url() click to toggle source
# File lib/currency_cloud/session.rb, line 30
def environment_url
  ENVIRONMENTS[environment]
end
reauthenticate() click to toggle source
# File lib/currency_cloud/session.rb, line 44
def reauthenticate
  CurrencyCloud.token = @token = nil
  authenticate
end

Private Instance Methods

request() click to toggle source
# File lib/currency_cloud/session.rb, line 57
def request
  RequestHandler.new(self)
end
validate() click to toggle source
# File lib/currency_cloud/session.rb, line 51
def validate
  self.class.validate_environment(environment)
  raise CurrencyCloud::GeneralError, 'login_id must be set using CurrencyCloud.login_id=' unless login_id
  raise CurrencyCloud::GeneralError, 'api_key must be set using CurrencyCloud.api_key=' unless api_key
end