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? ActiveSupport::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 77 78 79 80 81 82 83 |
# File 'app/controllers/spree/api/checkouts_controller.rb', line 56 def update :update, @order, order_token update_params = if params[:payment_source].present? ActiveSupport::Deprecation.warn("Passing payment_source is deprecated. Send source parameters inside payments_attributes[:source_attributes].", caller) move_payment_source_into_payments_attributes(params) else params end if @order.update_from_params(update_params, permitted_checkout_attributes, request.headers.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 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 |