Sha256: 0b20358920f624733354682b37032d03d24babcd9a2640de672ac4b43327f7da

Contents?: true

Size: 961 Bytes

Versions: 62

Compression:

Stored size: 961 Bytes

Contents

module Workarea
  module Search
    # TODO: v4 - use ProductRulesFiltering and refactor category_ids to
    # separate module.
    module CategorizationFiltering
      def category_ids
        Array(params[:category_ids]).map(&:to_s)
      end

      def category_filters
        @category_filters ||= ProductRules.new(params[:rules]).to_a
      end

      def category_query_clauses
        return [] if category_filters.blank? && category_ids.blank?

        results = []

        if category_filters.blank?
          results << { terms: { 'facets.category_id' => category_ids } }
        elsif category_ids.blank?
          results.push(*category_filters)
        else
          results.push(
            bool: {
              should: [
                { terms: { 'facets.category_id' => category_ids } },
                { bool: { must: category_filters } }
              ]
            }
          )
        end

        results
      end
    end
  end
end

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
workarea-core-3.5.27 app/queries/workarea/search/categorization_filtering.rb
workarea-core-3.5.26 app/queries/workarea/search/categorization_filtering.rb
workarea-core-3.4.45 app/queries/workarea/search/categorization_filtering.rb
workarea-core-3.5.25 app/queries/workarea/search/categorization_filtering.rb
workarea-core-3.5.23 app/queries/workarea/search/categorization_filtering.rb
workarea-core-3.4.44 app/queries/workarea/search/categorization_filtering.rb
workarea-core-3.5.22 app/queries/workarea/search/categorization_filtering.rb
workarea-core-3.4.43 app/queries/workarea/search/categorization_filtering.rb
workarea-core-3.5.21 app/queries/workarea/search/categorization_filtering.rb
workarea-core-3.4.42 app/queries/workarea/search/categorization_filtering.rb
workarea-core-3.5.20 app/queries/workarea/search/categorization_filtering.rb
workarea-core-3.4.41 app/queries/workarea/search/categorization_filtering.rb
workarea-core-3.5.19 app/queries/workarea/search/categorization_filtering.rb
workarea-core-3.4.40 app/queries/workarea/search/categorization_filtering.rb
workarea-core-3.5.18 app/queries/workarea/search/categorization_filtering.rb
workarea-core-3.4.39 app/queries/workarea/search/categorization_filtering.rb
workarea-core-3.5.17 app/queries/workarea/search/categorization_filtering.rb
workarea-core-3.4.38 app/queries/workarea/search/categorization_filtering.rb
workarea-core-3.5.16 app/queries/workarea/search/categorization_filtering.rb
workarea-core-3.4.37 app/queries/workarea/search/categorization_filtering.rb