Sha256: 2b6a84af9dbc5dfa00ced33f8afcd53258bf51ebb8492e5872fd311732f75110

Contents?: true

Size: 1.44 KB

Versions: 42

Compression:

Stored size: 1.44 KB

Contents

module Caboose
  class CartController < Caboose::ApplicationController
    
    # GET /cart
    def index
    end
    
    # GET /cart/items
    def list
      render :json => { :order => @order }
    end
    
    # GET /cart/item-count
    def item_count
      render :json => { :item_count => @order.line_items.count }
    end
    
    # POST /cart
    def add
      variant_id = params[:variant_id]
      qty = params[:quantity] ? params[:quantity].to_i : 1
      
      if @order.line_items.exists?(:variant_id => variant_id)
        li = @order.line_items.find_by_variant_id(variant_id)
        li.quantity += qty
      else
        li = LineItem.new(
          :order_id   => @order.id,
          :variant_id => variant_id,
          :quantity   => qty,
          :status     => 'pending'
        )
      end            
      render :json => { 
        :success => li.save, 
        :errors => li.errors.full_messages,
        :item_count => @order.line_items.count 
      }
    end
    
    # PUT /cart/:line_item_id
    def update
      li = LineItem.find(params[:line_item_id])
      li.quantity = params[:quantity].to_i
      li.save
      li.destroy if li.quantity == 0
      @order.calculate_subtotal
      render :json => { :success => true }
    end
    
    # DELETE /cart/:line_item_id
    def remove
      li = LineItem.find(params[:line_item_id]).destroy
      render :json => { :success => true, :item_count => @order.line_items.count }
    end
  end
end

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
caboose-cms-0.5.60 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.59 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.58 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.57 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.56 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.55 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.54 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.53 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.52 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.51 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.50 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.49 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.48 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.47 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.46 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.45 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.44 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.43 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.42 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.41 app/controllers/caboose/cart_controller.rb