Class: Spree::Api::Products::FiltersPresenter

Inherits:
Object
  • Object
show all
Defined in:
app/presenters/spree/api/products/filters_presenter.rb

Instance Method Summary collapse

Constructor Details

#initialize(current_store, current_currency, params) ⇒ FiltersPresenter

Returns a new instance of FiltersPresenter.



5
6
7
# File 'app/presenters/spree/api/products/filters_presenter.rb', line 5

def initialize(current_store, current_currency, params)
  @products_for_filters = find_products_for_filters(current_store, current_currency, params)
end

Instance Method Details

#to_hObject



9
10
11
12
13
14
15
16
17
18
# File 'app/presenters/spree/api/products/filters_presenter.rb', line 9

def to_h
  option_values = Spree::OptionValues::FindAvailable.new(products_scope: products_for_filters).execute
  option_values_presenters = Spree::Filters::OptionsPresenter.new(option_values_scope: option_values).to_a
  product_properties = Spree::ProductProperties::FindAvailable.new(products_scope: products_for_filters).execute
  product_properties_presenters = Spree::Filters::PropertiesPresenter.new(product_properties_scope: product_properties).to_a
  {
    option_types: option_values_presenters.map(&:to_h),
    product_properties: product_properties_presenters.map(&:to_h)
  }
end