Sha256: fc8889d214e5e6e280ad7f8da7605a136dfe19d6809f088186f644c382950e65

Contents?: true

Size: 1.58 KB

Versions: 12

Compression:

Stored size: 1.58 KB

Contents

module Caboose
  class CartController < Caboose::ApplicationController
    before_filter :get_line_item, :only => [:update, :remove]
    
    def get_line_item
      @line_item = @order.line_items.find(params[:id])
    end
    
    # 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/add
    def add
      if @order.line_items.exists?(:variant_id => params[:variant_id])
        @line_item = @order.line_items.find_by_variant_id(params[:variant_id])
        @line_item.quantity += params[:quantity] ? params[:quantity].to_i : 1
      else
        @line_item = LineItem.new
        @line_item.variant_id = params[:variant_id]
        @line_item.order_id = @order.id
        @line_item.status = 'pending'
        @line_item.quantity = params[:quantity] ? params[:quantity].to_i : 1
      end
      
      render :json => { :success => @line_item.save, :errors => @line_item.errors.full_messages, :item_count => @order.line_items.count }
    end
    
    # PUT cart/update
    def update
      @line_item.quantity = params[:quantity].to_i
      render :json => { :success => @line_item.save, :errors => @line_item.errors.full_messages, :line_item => @line_item, :order_subtotal => @order.calculate_subtotal }
    end
    
    # DELETE cart/delete
    def remove
      render :json => { :success => !!@order.line_items.delete(@line_item), :item_count => @order.line_items.count }
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
caboose-cms-0.5.12 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.11 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.10 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.9 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.8 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.7 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.6 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.5 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.4 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.3 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.2 app/controllers/caboose/cart_controller.rb
caboose-cms-0.5.1 app/controllers/caboose/cart_controller.rb