Class: Spree::Api::LineItemsController
Instance Attribute Summary
#current_api_user
Instance Method Summary
collapse
#map_nested_attributes_keys
Instance Method Details
#create ⇒ Object
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'app/controllers/spree/api/line_items_controller.rb', line 11
def create
variant = Spree::Variant.find(params[:line_item][:variant_id])
@line_item = @order.contents.add(
variant,
params[:line_item][:quantity] || 1,
{
stock_location_quantities: params[:line_item][:stock_location_quantities]
}.merge(line_item_params[:options] || {})
)
if @line_item.errors.empty?
respond_with(@line_item, status: 201, default_template: :show)
else
invalid_resource!(@line_item)
end
end
|
#destroy ⇒ Object
38
39
40
41
42
43
|
# File 'app/controllers/spree/api/line_items_controller.rb', line 38
def destroy
@line_item = find_line_item
variant = Spree::Variant.unscoped.find(@line_item.variant_id)
@order.contents.remove(variant, @line_item.quantity)
respond_with(@line_item, status: 204)
end
|
#update ⇒ Object
28
29
30
31
32
33
34
35
36
|
# File 'app/controllers/spree/api/line_items_controller.rb', line 28
def update
@line_item = find_line_item
if @order.contents.update_cart(line_items_attributes)
@line_item.reload
respond_with(@line_item, default_template: :show)
else
invalid_resource!(@line_item)
end
end
|