Class: Restforce::Middleware::Caching

Inherits:
FaradayMiddleware::Caching
  • Object
show all
Defined in:
lib/restforce/middleware/caching.rb

Instance Method Summary collapse

Instance Method Details

#cache_key(env) ⇒ Object

We don’t want to cache requests for different clients, so append the oauth token to the cache key.



16
17
18
# File 'lib/restforce/middleware/caching.rb', line 16

def cache_key(env)
  super(env) + hashed_auth_header(env)
end

#call(env) ⇒ Object



5
6
7
8
# File 'lib/restforce/middleware/caching.rb', line 5

def call(env)
  expire(cache_key(env)) unless use_cache?
  super
end

#expire(key) ⇒ Object



10
11
12
# File 'lib/restforce/middleware/caching.rb', line 10

def expire(key)
  cache&.delete(key)
end

#hashed_auth_header(env) ⇒ Object



24
25
26
27
28
# File 'lib/restforce/middleware/caching.rb', line 24

def hashed_auth_header(env)
  Digest::SHA1.hexdigest(
    env[:request_headers][Restforce::Middleware::Authorization::AUTH_HEADER]
  )
end

#use_cache?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/restforce/middleware/caching.rb', line 20

def use_cache?
  @options.fetch(:use_cache, true)
end