class HelpScout::API::AccessToken::Cache
Attributes
backend[R]
key[R]
Public Class Methods
new(backend: nil, key: nil)
click to toggle source
# File lib/help_scout/api/access_token/cache.rb, line 9 def initialize(backend: nil, key: nil) @backend = backend || HelpScout.configuration.token_cache @key = key || HelpScout.configuration.token_cache_key end
Public Instance Methods
configured?()
click to toggle source
# File lib/help_scout/api/access_token/cache.rb, line 14 def configured? backend.present? && key.present? end
delete()
click to toggle source
# File lib/help_scout/api/access_token/cache.rb, line 18 def delete backend.delete(key) end
fetch_token(&token_request)
click to toggle source
# File lib/help_scout/api/access_token/cache.rb, line 22 def fetch_token(&token_request) raise ArgumentError, 'A request fallback block is required' unless block_given? if (cached_token_json = backend.read(key)) AccessToken.new(JSON.parse(cached_token_json, symbolize_names: true)) else token_request.call.tap { |token| write(token) } end end
Private Instance Methods
write(token)
click to toggle source
# File lib/help_scout/api/access_token/cache.rb, line 34 def write(token) backend.write(key, token.to_json, expires_in: token.expires_in) end