Class: Spree::Api::V2::Tenant::PreviewSectionsController

Inherits:
HomepageSectionsController show all
Defined in:
app/controllers/spree/api/v2/tenant/preview_sections_controller.rb

Instance Method Summary collapse

Methods inherited from HomepageSectionsController

#collection_serializer, #model_class, #resource_serializer, #scope

Methods inherited from BaseController

#current_vendor, #render_serialized_payload, #require_tenant, #scope

Instance Method Details

#collectionObject

override



9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'app/controllers/spree/api/v2/tenant/preview_sections_controller.rb', line 9

def collection
  allowed_ids = spree_current_user.preview_roles.where(previewable_type: Spree::Taxon.polymorphic_name).pluck(:previewable_id)

  section_ids = SpreeCmCommissioner::HomepageSectionRelatable
                .where(relatable_type: 'Spree::Taxon', relatable_id: allowed_ids.presence || [])
                .select(:homepage_section_id)

  @collection ||= scope.filter_by_segment(params[:homepage_id] || :general)
                       .active
                       .where(preview: true)
                       .where(id: section_ids)
                       .order(position: :asc)
end