class HelpScout::API::AccessToken

Attributes

expires_at[R]
expires_in[R]
invalid[RW]
value[R]

Public Class Methods

create() click to toggle source
# File lib/help_scout/api/access_token.rb, line 11
def create
  cache = HelpScout::API::AccessToken::Cache.new
  request = HelpScout::API::AccessToken::Request.new

  cache.configured? ? cache.fetch_token { request.execute } : request.execute
end
new(params) click to toggle source
# File lib/help_scout/api/access_token.rb, line 28
def initialize(params)
  @value = params[:access_token]

  if params[:expires_at]
    @expires_at = DateTime.parse(params[:expires_at].to_s).to_time.utc
  elsif params[:expires_in]
    @expires_in = params[:expires_in].to_i
    @expires_at = (Time.now.utc + @expires_in)
  end
end
refresh!() click to toggle source
# File lib/help_scout/api/access_token.rb, line 18
def refresh!
  return HelpScout.access_token unless HelpScout.access_token.nil? || HelpScout.access_token.stale?

  HelpScout.api.access_token = create
end

Public Instance Methods

as_json(*) click to toggle source
# File lib/help_scout/api/access_token.rb, line 39
def as_json(*)
  {
    access_token: value,
    expires_at: expires_at
  }
end
expired?() click to toggle source
# File lib/help_scout/api/access_token.rb, line 46
def expired?
  return false unless expires_at

  Time.now.utc > expires_at
end
invalid?() click to toggle source
# File lib/help_scout/api/access_token.rb, line 52
def invalid?
  !!invalid # rubocop:disable Style/DoubleNegation
end
invalidate!() click to toggle source
# File lib/help_scout/api/access_token.rb, line 56
def invalidate!
  cache = HelpScout::API::AccessToken::Cache.new

  cache.delete if cache.configured?

  self.invalid = true
end
stale?() click to toggle source
# File lib/help_scout/api/access_token.rb, line 64
def stale?
  invalid? || expired?
end