typhoeus: add a cache store for successful requests

This commit is contained in:
Pierre de La Morinerie 2018-12-06 13:21:05 +00:00
parent f7c65e8b57
commit a0ae1afb45
2 changed files with 61 additions and 0 deletions

View file

@ -0,0 +1,21 @@
module Typhoeus
module Cache
# Cache successful Typhoeus requests in the Rails cache
# (but dont cache failed requests).
#
# Usage:
# Typhoeus.config.cache = Typhoeus::Cache::SuccessfulRequestsRailsCache.new
# Typhoeus.get('http://exemple.com/api', cache_ttl: 1.day)
class SuccessfulRequestsRailsCache
def get(request)
::Rails.cache.read(request)
end
def set(request, response)
if response&.success?
::Rails.cache.write(request, response, expires_in: request.cache_ttl)
end
end
end
end
end