class CruAuthLib::AccessToken

Attributes

email[RW]
first_name[RW]
guid[RW]
key_guid[RW]
last_name[RW]
pgt[RW]
relay_guid[RW]
token[RW]

Public Class Methods

del(token) click to toggle source
# File lib/cru_auth_lib/access_token.rb, line 35
def del(token)
  redis_client.del(redis_key(token))
end
exist?(token) click to toggle source
# File lib/cru_auth_lib/access_token.rb, line 23
def exist?(token)
  redis_client.get(redis_key(token))
end
new(attributes = {}) click to toggle source
Calls superclass method
# File lib/cru_auth_lib/access_token.rb, line 10
def initialize(attributes = {})
  attributes.symbolize_keys!
  super(attributes)
  @token = generate_access_token unless attributes[:token]
  write
end
read(token) click to toggle source
# File lib/cru_auth_lib/access_token.rb, line 18
def read(token)
  json = exist?(token)
  new(Oj.load(json)) if json
end
redis_client() click to toggle source
# File lib/cru_auth_lib/access_token.rb, line 27
def redis_client
  @redis_client ||= CruAuthLib.redis_client
end
redis_key(token) click to toggle source
# File lib/cru_auth_lib/access_token.rb, line 31
def redis_key(token)
  ['cru_lib', 'access_token', token].join(':')
end

Private Instance Methods

generate_access_token() click to toggle source
# File lib/cru_auth_lib/access_token.rb, line 42
def generate_access_token
  loop do
    attributes[:token] = SecureRandom.uuid.delete('-')
    break unless self.class.exist?(attributes[:token])
  end
  attributes[:token]
end
write() click to toggle source
# File lib/cru_auth_lib/access_token.rb, line 50
def write
  self.class.redis_client.setex(self.class.redis_key(attributes[:token]), 30.minutes.to_i, to_json)
end