From 347272600825af3119454c51dd1e43be5dd9bfbc Mon Sep 17 00:00:00 2001 From: Jared Norman Date: Sun, 24 Mar 2019 09:51:44 -0700 Subject: Make cache key configurable Some stores may want to more aggressively cache the responses, preferring fewer requests to more accurate results. --- lib/super_good/solidus_taxjar.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'lib/super_good/solidus_taxjar.rb') diff --git a/lib/super_good/solidus_taxjar.rb b/lib/super_good/solidus_taxjar.rb index 00c3ad5..7033501 100644 --- a/lib/super_good/solidus_taxjar.rb +++ b/lib/super_good/solidus_taxjar.rb @@ -11,6 +11,7 @@ require "super_good/solidus_taxjar/discount_calculator" module SuperGood module SolidusTaxJar class << self + attr_accessor :cache_key attr_accessor :discount_calculator attr_accessor :exception_handler attr_accessor :line_item_tax_label_maker @@ -19,6 +20,15 @@ module SuperGood attr_accessor :test_mode end + self.cache_key = ->(order) { + APIParams.order_params(order).transform_values do |value| + case value + when Array, Hash then value.hash + else + value + end + end + } self.discount_calculator = ::SuperGood::SolidusTaxJar::DiscountCalculator self.exception_handler = ->(e) { Rails.logger.error "An error occurred while fetching TaxJar tax rates - #{e}: #{e.message}" -- cgit v1.2.3