Sha256: 8bb40fabd7a23c3b094a6d3b770272c29fd2ba1cb6fc55f29cb0e27d2ef6242c

Contents?: true

Size: 1.85 KB

Versions: 32

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_cart_serializer.constantize
            end

            def resource_serializer
              Spree::Api::Dependencies.storefront_cart_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

32 entries across 32 versions & 1 rubygems

Version Path
spree_api-3.7.14.1 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-3.7.14 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-3.7.13 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-4.0.5 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-4.1.12 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-3.7.12 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-4.2.0.rc1 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-4.0.4 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-4.1.11 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-4.1.10 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-4.2.0.beta app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-4.1.9 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-4.1.8 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-4.1.7 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-4.1.6 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-4.1.5 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-4.1.4 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-4.1.3 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-4.1.2 app/controllers/spree/api/v2/storefront/account/orders_controller.rb
spree_api-4.1.1 app/controllers/spree/api/v2/storefront/account/orders_controller.rb