Sha256: 9de53c5528d23c20742c8b242b48fae3cd101319caa92e4f81daa84e69f0fd6b

Contents?: true

Size: 644 Bytes

Versions: 5

Compression:

Stored size: 644 Bytes

Contents

module Restforce
  class Middleware::Caching < FaradayMiddleware::Caching
    def call(env)
      expire(cache_key(env)) unless use_cache?
      super
    end

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

    # We don't want to cache requests for different clients, so append the
    # oauth token to the cache key.
    def cache_key(env)
      super(env) + hashed_auth_header(env)
    end

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

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

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
restforce-2.5.4 lib/restforce/middleware/caching.rb
restforce-2.5.3 lib/restforce/middleware/caching.rb
restforce-2.5.2 lib/restforce/middleware/caching.rb
restforce-2.5.1 lib/restforce/middleware/caching.rb
restforce-2.5.0 lib/restforce/middleware/caching.rb