class TrustPilot::Token

Attributes

validity[R]

Public Class Methods

get() click to toggle source
# File lib/trust_pilot/api/token.rb, line 19
def self.get
  Token.instance.get
end
new() click to toggle source
# File lib/trust_pilot/api/token.rb, line 15
def initialize
  @validity = 1.second.ago
end

Public Instance Methods

get() click to toggle source
# File lib/trust_pilot/api/token.rb, line 23
def get
  new_token unless validity >= Time.now
  @token || raise(NoTokenException)
end

Private Instance Methods

check_default() click to toggle source
# File lib/trust_pilot/api/token.rb, line 30
def check_default
  unless TrustPilot.username && TrustPilot.password && TrustPilot.key && TrustPilot.secret
    raise MissingDefault
  end
end
do_call() click to toggle source
# File lib/trust_pilot/api/token.rb, line 43
def do_call
  endpoint = '/accesstoken'
  params = {
    grant_type: 'password',
    username: TrustPilot.username,
    password: TrustPilot.password
  }
  headers = {
    'Authorization' => "Basic #{encoded_key}",
    'Content-Type' => 'application/x-www-form-urlencoded'
  }
  self.class.post(endpoint, {headers: headers, body: params})
end
encoded_key() click to toggle source
# File lib/trust_pilot/api/token.rb, line 57
def encoded_key
  Base64.urlsafe_encode64("#{TrustPilot.key}:#{TrustPilot.secret}")
end
new_token() click to toggle source
# File lib/trust_pilot/api/token.rb, line 36
def new_token
  check_default
  response = do_call
  @token = response.parsed_response["access_token"]
  @validity = 5.minutes.from_now
end