Sha256: f7902e42ebc295a2a86a5646c9e1838396822def517c9b9dde6c0ffdf8f6cd7a

Contents?: true

Size: 1.53 KB

Versions: 9

Compression:

Stored size: 1.53 KB

Contents

module Spree
  module Api
    module V2
      class ResourceController < ::Spree::Api::V2::BaseController
        include Spree::Api::V2::CollectionOptionsHelpers

        def index
          render_serialized_payload { serialize_collection(paginated_collection) }
        end

        def show
          render_serialized_payload { serialize_resource(resource) }
        end

        protected

        def sorted_collection
          collection_sorter.new(collection, params, allowed_sort_attributes).call
        end

        def allowed_sort_attributes
          default_sort_atributes
        end

        def default_sort_atributes
          [:id, :updated_at, :created_at]
        end

        def scope
          model_class.accessible_by(current_ability, :show).includes(scope_includes)
        end

        def scope_includes
          []
        end

        def resource
          @resource ||= if defined?(resource_finder)
                          resource_finder.new(scope: scope, params: params).execute
                        else
                          scope.find(params[:id])
                        end
        end

        def collection
          @collection ||= if defined?(collection_finder)
                            collection_finder.new(scope: scope, params: params).execute
                          else
                            scope
                          end
        end

        def collection_sorter
          Spree::Api::Dependencies.storefront_collection_sorter.constantize
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
spree_api-4.2.7 app/controllers/spree/api/v2/resource_controller.rb
spree_api-4.2.6 app/controllers/spree/api/v2/resource_controller.rb
spree_api-4.2.5 app/controllers/spree/api/v2/resource_controller.rb
spree_api-4.2.4 app/controllers/spree/api/v2/resource_controller.rb
spree_api-4.2.3.1 app/controllers/spree/api/v2/resource_controller.rb
spree_api-4.2.3 app/controllers/spree/api/v2/resource_controller.rb
spree_api-4.2.2 app/controllers/spree/api/v2/resource_controller.rb
spree_api-4.2.1 app/controllers/spree/api/v2/resource_controller.rb
spree_api-4.2.0 app/controllers/spree/api/v2/resource_controller.rb