Sha256: 95824e40fc9e549db7a1b66d5d39098a374550843731b85b36aa284291600b6c

Contents?: true

Size: 1.85 KB

Versions: 10

Compression:

Stored size: 1.85 KB

Contents

module Spree
  module Api
    module V2
      module Storefront
        module Account
          class OrdersController < ::Spree::Api::V2::BaseController
            include Spree::Api::V2::CollectionOptionsHelpers
            before_action :require_spree_current_user

            def index
              render_serialized_payload { serialize_collection(paginated_collection) }
            end

            def show
              spree_authorize! :show, resource

              render_serialized_payload { serialize_resource(resource) }
            end

            private

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

            def collection
              collection_finder.new(user: spree_current_user).execute
            end

            def resource
              resource = resource_finder.new(user: spree_current_user, number: params[:id]).execute.take
              raise ActiveRecord::RecordNotFound if resource.nil?

              resource
            end

            def collection_serializer
              Spree::Api::Dependencies.storefront_order_serializer.constantize
            end

            def resource_serializer
              Spree::Api::Dependencies.storefront_order_serializer.constantize
            end

            def collection_finder
              Spree::Api::Dependencies.storefront_completed_order_finder.constantize
            end

            def resource_finder
              Spree::Api::Dependencies.storefront_completed_order_finder.constantize
            end

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

            def collection_paginator
              Spree::Api::Dependencies.storefront_collection_paginator.constantize
            end
          end
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
spree_api-4.0.9 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-4.1.15 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-4.1.14 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-4.0.8 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-4.1.13.1 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-4.0.7.1 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-4.0.7 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-4.1.13 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-4.0.6 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-4.2.0.rc2 app/controllers/spree/api/v2/storefront/account/orders_controller.rb