Sha256: 860474bcb6ace03ad64bc000d47739bbcfa89f2b82f9241e880eaa9578543f87

Contents?: true

Size: 891 Bytes

Versions: 2

Compression:

Stored size: 891 Bytes

Contents

module Spree
  class RepeatedOrdersController < Spree::StoreController

    include Spree::SpreeRepeatedOrder::ControllerHelpers::RepeatedOrder

    before_filter :check_authorization

    def create
      past_order = Spree::Order.find_by(number: params[:number])
      new_order = current_order(create_order_if_necessary: true)

      duplicate_order(past_order, new_order)

      if new_order.save
        flash[:success] = 'We have added your past order items to the cart. Just proceed to checkout to complete it.'
      else
        flash[:error] = 'We are sorry, but we could not add your past items to the cart.'
      end

      redirect_to(cart_path)
    end

    private

    def check_authorization
      session[:access_token] ||= params[:token]

      order = Spree::Order.find_by_number(params[:number])
      authorize! :edit, order, session[:access_token]
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
spree_repeat_order-2.2.2 app/controllers/spree/repeated_orders_controller.rb
spree_repeat_order-2.2.1 app/controllers/spree/repeated_orders_controller.rb