Class: FlexCommerce::ParamToShql

Inherits:
Object
  • Object
show all
Defined in:
app/services/param_to_shql.rb

Instance Method Summary collapse

Constructor Details

#initialize(filter_param) ⇒ ParamToShql

initialize



20
21
22
# File 'app/services/param_to_shql.rb', line 20

def initialize(filter_param)
  @filter_param = filter_param
end

Instance Method Details

#callObject

call



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'app/services/param_to_shql.rb', line 28

def call
  return {} unless @filter_param

  facet_filters = []
  @filter_param.each do |label,facet|
    facet_filter = []
    if (facet.keys & ['lt', 'lte', 'gt', 'gte']).any?
      range_filter =  range_param_to_shql(label, facet)
      facet_filter << range_filter if !(range_filter == "" || range_filter == nil)
    else
      facet.keys.each do |value| 
        facet_filter << { label => { "eq" => value } }
      end
    end
    facet_filters << { "or" => facet_filter }
  end
  facet_filters.count == 1 ? facet_filters.first : { "and" => facet_filters }
end