From daee5b49b553eb42f5bb0ff61cd8956b83721f80 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Mon, 6 Dec 2021 00:01:08 +0000 Subject: [PATCH] Extract #process_payment_completion! --- app/controllers/concerns/order_completion.rb | 15 +++++++++++++++ .../payment_gateways/paypal_controller.rb | 10 +--------- .../payment_gateways/stripe_controller.rb | 17 +---------------- 3 files changed, 17 insertions(+), 25 deletions(-) diff --git a/app/controllers/concerns/order_completion.rb b/app/controllers/concerns/order_completion.rb index 7d0fd08c2b..41145645f4 100644 --- a/app/controllers/concerns/order_completion.rb +++ b/app/controllers/concerns/order_completion.rb @@ -50,6 +50,21 @@ module OrderCompletion redirect_to main_app.shop_path end + def process_payment_completion! + return processing_failed unless @order.process_payments! + + if OrderWorkflow.new(@order).next && @order.complete? + processing_succeeded + redirect_to order_completion_route + else + processing_failed + redirect_to order_failed_route + end + rescue Spree::Core::GatewayError => e + gateway_error(e) + processing_failed + end + def processing_succeeded Checkout::PostCheckoutActions.new(@order).success(params, spree_current_user) order_completion_reset(@order) diff --git a/app/controllers/payment_gateways/paypal_controller.rb b/app/controllers/payment_gateways/paypal_controller.rb index 9679caeb4e..b90726e053 100644 --- a/app/controllers/payment_gateways/paypal_controller.rb +++ b/app/controllers/payment_gateways/paypal_controller.rb @@ -49,16 +49,8 @@ module PaymentGateways amount: @order.total, payment_method: payment_method ) - @order.process_payments! - @order.next - if @order.complete? - processing_succeeded - redirect_to order_completion_route - else - processing_failed - redirect_to order_failed_route - end + process_payment_completion! end def cancel diff --git a/app/controllers/payment_gateways/stripe_controller.rb b/app/controllers/payment_gateways/stripe_controller.rb index 686535dc80..6ee892087f 100644 --- a/app/controllers/payment_gateways/stripe_controller.rb +++ b/app/controllers/payment_gateways/stripe_controller.rb @@ -9,7 +9,7 @@ class StripeController < BaseController def confirm return processing_failed unless valid_payment_intent? - process_payment_completion + process_payment_completion! end private @@ -34,21 +34,6 @@ class StripeController < BaseController end end - def process_payment_completion - return processing_failed unless @order.process_payments! - - if OrderWorkflow.new(@order).next && @order.complete? - processing_succeeded - redirect_to order_completion_route - else - processing_failed - redirect_to order_failed_route - end - rescue Spree::Core::GatewayError => e - gateway_error(e) - processing_failed - end - def cancel_incomplete_payments # The checkout could not complete due to stock running out. We void any pending (incomplete) # Stripe payments here as the order will need to be changed and resubmitted (or abandoned).