Sha256: 16bb2990cf682864c09c1cf2bb95b5e361653153142a7a41bf9163e321e99d28

Contents?: true

Size: 1.61 KB

Versions: 8

Compression:

Stored size: 1.61 KB

Contents

class Store::CheckoutsController < Store::StoreController
  layout "storefront"

  def create
    unless current_cart.unfinished?
      render :json => "This order is already finished!", :status => :unprocessable_entity and return
    end

    @payment = CreditCardPayment.new(params[:payment])
    @payment.user_agreement = params[:payment][:user_agreement]
    current_cart.special_instructions = special_instructions
    
    @checkout = Checkout.new(current_cart, @payment)
    
    if @checkout.valid? && @checkout.finish
      @order = @checkout.order
      render :thanks and return
    else      
      flash[:error] = @checkout.message
      redirect_to store_order_path(params[:payment][:customer])
    end
  rescue Exception => e
    Exceptional.context(:params => filter(params))
    Exceptional.handle(e, "Checkout failed!")    
    Rails.logger.error(e.backtrace)
    Rails.logger.error(e.message)
    flash[:error]  = "We're sorry but we could not process the sale.  Please make sure all fields are filled out accurately"
    flash[:notice] = "We've processed your donation, however we could not process your tickets." if @fafs_success
    redirect_to store_order_path    
  end

  def filter(params)
    filters = Rails.application.config.filter_parameters
    f = ActionDispatch::Http::ParameterFilter.new filters
    f.filter params
  end

  def dook
    @order = Order.find(18975)
    render :thanks
  end

  private
    def special_instructions
      instructions = []
      params.fetch(:special_instructions, []).each do |event_id, response|
        instructions << response
      end
      instructions.join(" ")
    end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
artfully_ose-1.2.0 app/controllers/store/checkouts_controller.rb
artfully_ose-1.2.0.beta.1 app/controllers/store/checkouts_controller.rb
artfully_ose-1.2.0.alpha.2 app/controllers/store/checkouts_controller.rb
artfully_ose-1.2.0.alpha.1 app/controllers/store/checkouts_controller.rb
artfully_ose-1.2.0.pre.27 app/controllers/store/checkouts_controller.rb
artfully_ose-1.2.0.pre.26 app/controllers/store/checkouts_controller.rb
artfully_ose-1.2.0.pre.24 app/controllers/store/checkouts_controller.rb
artfully_ose-1.2.0.pre.23 app/controllers/store/checkouts_controller.rb