Sha256: a62c15844514a09c0c580a2b32bf44784643ce80fd11c8d982e5afde261747b1

Contents?: true

Size: 1013 Bytes

Versions: 26

Compression:

Stored size: 1013 Bytes

Contents

module Spree
  module Api
    module V2
      module Caching
        extend ActiveSupport::Concern

        def collection_cache_key(collection)
          ids_and_timestamps = collection.unscope(:includes).unscope(:order).pluck(:id, :updated_at)

          ids = ids_and_timestamps.map(&:first)
          max_updated_at = ids_and_timestamps.map(&:last).max

          cache_key_parts = [
            self.class.to_s,
            max_updated_at,
            ids,
            resource_includes,
            sparse_fields,
            serializer_params,
            params[:sort]&.strip,
            params[:page]&.to_s&.strip,
            params[:per_page]&.to_s&.strip,
          ].flatten.join('-')

          Digest::MD5.hexdigest(cache_key_parts)
        end

        def collection_cache_opts
          {
            namespace: Spree::Api::Config[:api_v2_collection_cache_namespace],
            expires_in: Spree::Api::Config[:api_v2_collection_cache_ttl],
          }
        end
      end
    end
  end
end

Version data entries

26 entries across 26 versions & 3 rubygems

Version Path
spree_api-4.8.3 app/controllers/concerns/spree/api/v2/caching.rb
spree_api-4.8.2 app/controllers/concerns/spree/api/v2/caching.rb
spree_api-4.7.3 app/controllers/concerns/spree/api/v2/caching.rb
spree_api-4.6.6 app/controllers/concerns/spree/api/v2/caching.rb
spree_api-4.5.5 app/controllers/concerns/spree/api/v2/caching.rb
spree_api-4.4.1 app/controllers/concerns/spree/api/v2/caching.rb
spree_api-4.5.4 app/controllers/concerns/spree/api/v2/caching.rb
spree_api-4.6.5 app/controllers/concerns/spree/api/v2/caching.rb
spree_api-4.7.2 app/controllers/concerns/spree/api/v2/caching.rb
spree_api-4.7.1 app/controllers/concerns/spree/api/v2/caching.rb
spree_api-4.6.4 app/controllers/concerns/spree/api/v2/caching.rb
spree_api-4.7.0 app/controllers/concerns/spree/api/v2/caching.rb
spree_api-4.6.3 app/controllers/concerns/spree/api/v2/caching.rb
spree_api-4.6.2 app/controllers/concerns/spree/api/v2/caching.rb
spree_api-4.6.1 app/controllers/concerns/spree/api/v2/caching.rb
spree_api-4.6.0 app/controllers/concerns/spree/api/v2/caching.rb
spree_api-4.5.3 app/controllers/concerns/spree/api/v2/caching.rb
atkhayar-dev-spree-api-0.0.1 app/controllers/concerns/spree/api/v2/caching.rb
atkhayar-dev-spree-api-0.0.0 app/controllers/concerns/spree/api/v2/caching.rb
atkhayar-spree-dev-api-0.0.0 app/controllers/concerns/spree/api/v2/caching.rb