Class: Amorail::StoreAdapters::RedisStoreAdapter

Inherits:
AbstractStoreAdapter show all
Defined in:
lib/amorail/store_adapters/redis_store_adapter.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from AbstractStoreAdapter

#update_refresh

Constructor Details

#initialize(**options) ⇒ RedisStoreAdapter

Returns a new instance of RedisStoreAdapter.



8
9
10
11
12
13
14
15
16
17
# File 'lib/amorail/store_adapters/redis_store_adapter.rb', line 8

def initialize(**options)
  begin
    require 'redis'
    @storage = configure_redis_client(**options)
  rescue LoadError => e
    msg = 'Could not load the \'redis\' gem, please add it to your gemfile or ' \
          'configure a different adapter (e.g. Amorail.store_adapter = :memory)'
    raise e.class, msg, e.backtrace
  end
end

Instance Attribute Details

#storageObject (readonly)

Returns the value of attribute storage.



6
7
8
# File 'lib/amorail/store_adapters/redis_store_adapter.rb', line 6

def storage
  @storage
end

Instance Method Details

#access_expired?(secret) ⇒ Boolean

Returns:

  • (Boolean)


33
34
35
36
37
# File 'lib/amorail/store_adapters/redis_store_adapter.rb', line 33

def access_expired?(secret)
  access_key = access_key(secret)
  refresh_key = refresh_key(secret)
  storage.get(refresh_key) && storage.get(access_key).nil?
end

#fetch_access(secret) ⇒ Object



19
20
21
22
23
# File 'lib/amorail/store_adapters/redis_store_adapter.rb', line 19

def fetch_access(secret)
  token = storage.get(access_key(secret))
  refresh_token = storage.get(refresh_key(secret))
  { token: token, refresh_token: refresh_token }.compact
end

#persist_access(secret, token, refresh_token, expiration) ⇒ Object



25
26
27
# File 'lib/amorail/store_adapters/redis_store_adapter.rb', line 25

def persist_access(secret, token, refresh_token, expiration)
  update_data(secret, token, refresh_token, expiration)
end

#update_access(secret, token, refresh_token, expiration) ⇒ Object



29
30
31
# File 'lib/amorail/store_adapters/redis_store_adapter.rb', line 29

def update_access(secret, token, refresh_token, expiration)
  update_data(secret, token, refresh_token, expiration)
end