Sha256: 688b773e70af406bee37957ebc6481512a5e0125a55280d6ce1702b4bbc5e99e

Contents?: true

Size: 912 Bytes

Versions: 1

Compression:

Stored size: 912 Bytes

Contents

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

        def collection_cache_key(collection)
          unscoped_collection = collection.unscope(:includes).unscope(:order)
          cache_key_parts = [
            self.class.to_s,
            unscoped_collection.maximum(:updated_at),
            unscoped_collection.ids,
            resource_includes,
            sparse_fields,
            serializer_params,
            params[:sort]&.strip,
            params[:page]&.strip,
            params[:per_page]&.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

1 entries across 1 versions & 1 rubygems

Version Path
spree_api-4.3.0.rc2 app/controllers/concerns/spree/api/v2/caching.rb