Class: Spree::Api::V2::BaseSerializer

Inherits:
Object
  • Object
show all
Includes:
JSONAPI::Serializer
Defined in:
app/serializers/spree/api/v2/base_serializer.rb

Class Method Summary collapse

Class Method Details

.record_cache_options(options, fieldset, include_list, params) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'app/serializers/spree/api/v2/base_serializer.rb', line 12

def self.record_cache_options(options, fieldset, include_list, params)
  opts = options.dup

  params_cache_key = params.map do |param|
    value = param.last
    next if param.nil? || value.nil?

    if value.respond_to?(:cache_key_with_version)
      value.cache_key_with_version
    elsif value.is_a?(Hash)
      # covers the current_price_options cases:
      #     { price_options: { tax_zone: Spree::Zone... } } or
      #     { price_options: { tax_zone: nil } }
      only_key = value.keys.first
      value[only_key]&.cache_key_with_version
    else
      value.to_s.downcase
    end
  end.compact.reject(&:blank?).join('-')

  opts[:namespace] += "-#{params_cache_key}"

  super(opts, fieldset, include_list, params)
end