Module: Workarea::Search::CategorizationFiltering
- Included in:
- Categorization, CategoryBrowse
- Defined in:
- app/queries/workarea/search/categorization_filtering.rb
Overview
TODO: v4 - use ProductRulesFiltering and refactor category_ids to separate module.
Instance Method Summary collapse
Instance Method Details
#category_filters ⇒ Object
10 11 12 |
# File 'app/queries/workarea/search/categorization_filtering.rb', line 10 def category_filters @category_filters ||= ProductRules.new(params[:rules]).to_a end |
#category_ids ⇒ Object
6 7 8 |
# File 'app/queries/workarea/search/categorization_filtering.rb', line 6 def category_ids Array(params[:category_ids]).map(&:to_s) end |
#category_query_clauses ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'app/queries/workarea/search/categorization_filtering.rb', line 14 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 |