class Restforce::Middleware::Caching

def call(env)

def call(env)
  # Taken from `Restforce::Middleware::Caching` implementation
  # before we switched away from the `faraday_middleware` gem.
  # See https://github.com/restforce/restforce/blob/a08b9d6c5e277bd7111ffa7ed50465dd49c05fab/lib/restforce/middleware/caching.rb.
  cache&.delete(cache_key(env)) unless use_cache?
  if env[:method] == :get
    if env[:parallel_manager]
      # callback mode
      cache_on_complete(env)
    else
      # synchronous mode
      key = cache_key(env)
      unless (response = cache.read(key)) && response
        response = @app.call(env)
        store_response_in_cache(key, response)
      end
      finalize_response(response, env)
    end
  else
    @app.call(env)
  end
end