Class: Spree::Api::CheckoutsController
- Inherits:
-
BaseController
- Object
- ActionController::Base
- BaseController
- Spree::Api::CheckoutsController
- Includes:
- Core::ControllerHelpers::Order, Core::ControllerHelpers::PaymentParameters
- Defined in:
- app/controllers/spree/api/checkouts_controller.rb
Instance Attribute Summary
Attributes inherited from BaseController
Instance Method Summary collapse
Instance Method Details
#advance ⇒ Object
37 38 39 40 41 |
# File 'app/controllers/spree/api/checkouts_controller.rb', line 37 def advance :update, @order, order_token @order.contents.advance respond_with(@order, default_template: 'spree/api/orders/show', status: 200) end |
#complete ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'app/controllers/spree/api/checkouts_controller.rb', line 43 def complete :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 => e logger.error("invalid_transition #{e.event} from #{e.from} for #{e.object.class.name}. Error: #{e.inspect}") respond_with(@order, default_template: 'spree/api/orders/could_not_transition', status: 422) end |
#next ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'app/controllers/spree/api/checkouts_controller.rb', line 17 def next if @order.confirm? Spree::Deprecation.warn "Using Spree::Api::CheckoutsController#next to transition to complete is deprecated. Please use #complete instead of #next.", caller complete return end :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 :update, @order, order_token @order.next! respond_with(@order, default_template: 'spree/api/orders/show', status: 200) rescue StateMachines::InvalidTransition => e logger.error("invalid_transition #{e.event} from #{e.from} for #{e.object.class.name}. Error: #{e.inspect}") respond_with(@order, default_template: 'spree/api/orders/could_not_transition', status: 422) end |
#update ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'app/controllers/spree/api/checkouts_controller.rb', line 56 def update :update, @order, order_token if OrderUpdateAttributes.new(@order, update_params, request_env: request.headers.env).apply 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 logger.error("failed_to_transition_errors=#{@order.errors.}") respond_with(@order, default_template: 'spree/api/orders/could_not_transition', status: 422) end else invalid_resource!(@order) end end |