jam-cloud/web/app/controllers/api_shopping_carts_controll...

54 lines
1.1 KiB
Ruby

class ApiShoppingCartsController < ApiController
before_filter :api_signed_in_user
respond_to :json
def index
@carts = current_user.shopping_carts
end
def add_jamtrack
jam_track = JamTrack.find_by_id(params[:id])
# verify JamTrack exists
if jam_track.nil?
raise StateError, "Invalid JamTrack."
end
@cart = ShoppingCart.create current_user, jam_track
if @cart.errors.any?
response.status = :unprocessable_entity
respond_with @cart
else
respond_with @cart, responder: ApiResponder, :statue => 201
end
end
def update_cart
@cart = ShoppingCart.find_by_id params[:id]
#verify Cart exists
raise StateError, "Invalid Cart." if @cart.nil?
@cart.quantity = params[:quantity]
if @cart.errors.any?
response.statue = :unprocessable_entity
respond_with @cart
else
respond_with @cart, responder: ApiResponder, :status => 200
end
end
def remove_cart
@cart = current_user.shopping_carts.find_by_id(params[:id])
raise StateError, "Invalid Cart." if @cart.nil?
@cart.destroy
respond_with responder: ApiResponder, :status => 204
end
end