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