Module: Spree::Api::V2::ProductListIncludes

Included in:
Spree::Api::V2::Platform::ProductsController, Storefront::ProductsController
Defined in:
app/controllers/concerns/spree/api/v2/product_list_includes.rb

Instance Method Summary collapse

Instance Method Details

#product_list_includesObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'app/controllers/concerns/spree/api/v2/product_list_includes.rb', line 5

def product_list_includes
  @product_list_includes ||= {
    taggings: [:tag],
    variants: [],
    master: [:prices]
  }

  @product_list_includes[:variant_images] = [] if params[:include]&.match('images')
  @product_list_includes[:option_types] = [] if params[:include]&.match('option_types')
  @product_list_includes[:product_properties] = [:property] if params[:include]&.match('product_properties')
  @product_list_includes[:master] = variant_includes if params[:include]&.match(/master|default_variant/)
  @product_list_includes[:variants] = variant_includes if params[:include]&.match(/variants|default_variant/)
  @product_list_includes[:taxons] = [:taxonomy, :icon, :store, :rich_text_translations, image_attachment: :blob] if params[:include]&.match('taxons')
  @product_list_includes
end

#variant_includesObject



21
22
23
24
25
26
27
28
# File 'app/controllers/concerns/spree/api/v2/product_list_includes.rb', line 21

def variant_includes
  variant_includes = {
    prices: [],
    option_values: :option_type,
  }
  variant_includes[:images] = [] if params[:include]&.match(/images/)
  variant_includes
end