Class: Spree::Api::CheckoutsController
- Inherits:
-
BaseController
- Object
- ActionController::Base
- BaseController
- Spree::Api::CheckoutsController
show all
- Includes:
- Core::ControllerHelpers::Order
- Defined in:
- app/controllers/spree/api/checkouts_controller.rb
Instance Attribute Summary
#current_api_user
Instance Method Summary
collapse
#map_nested_attributes_keys
Instance Method Details
#advance ⇒ Object
33
34
35
36
37
|
# File 'app/controllers/spree/api/checkouts_controller.rb', line 33
def advance
authorize! :update, @order, order_token
@order.contents.advance
respond_with(@order, default_template: 'spree/api/orders/show', status: 200)
end
|
#complete ⇒ Object
39
40
41
42
43
44
45
46
47
48
49
|
# File 'app/controllers/spree/api/checkouts_controller.rb', line 39
def complete
authorize! :update, @order, order_token
if !expected_total_ok?(params[:expected_total])
respond_with(@order, default_template: 'spree/api/orders/expected_total_mismatch', status: 400)
else
@order.complete!
respond_with(@order, default_template: 'spree/api/orders/show', status: 200)
end
rescue StateMachines::InvalidTransition
respond_with(@order, default_template: 'spree/api/orders/could_not_transition', status: 422)
end
|
#next ⇒ Object
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'app/controllers/spree/api/checkouts_controller.rb', line 14
def next
if @order.confirm?
ActiveSupport::Deprecation.warn "Using Spree::Api::CheckoutsController#next to transition to complete is deprecated. Please use #complete instead of #next.", caller
complete
return
end
authorize! :update, @order, order_token
if !expected_total_ok?(params[:expected_total])
respond_with(@order, default_template: 'spree/api/orders/expected_total_mismatch', status: 400)
return
end
authorize! :update, @order, order_token
@order.next!
respond_with(@order, default_template: 'spree/api/orders/show', status: 200)
rescue StateMachines::InvalidTransition
respond_with(@order, default_template: 'spree/api/orders/could_not_transition', status: 422)
end
|
#update ⇒ Object
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
# File 'app/controllers/spree/api/checkouts_controller.rb', line 51
def update
authorize! :update, @order, order_token
if @order.update_from_params(params, permitted_checkout_attributes, request..env)
if can?(:admin, @order) && user_id.present?
@order.associate_user!(Spree.user_class.find(user_id))
end
return if after_update_attributes
if @order.completed? || @order.next
state_callback(:after)
respond_with(@order, default_template: 'spree/api/orders/show')
else
respond_with(@order, default_template: 'spree/api/orders/could_not_transition', status: 422)
end
else
invalid_resource!(@order)
end
end
|