From 789c29f678dec7d545fbd22d00f24f7cde9a6098 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Mon, 6 Dec 2021 00:10:08 +0000 Subject: [PATCH] Extract #load_checkout_order --- app/controllers/checkout_controller.rb | 3 +-- app/controllers/concerns/order_completion.rb | 6 ++++++ .../payment_gateways/paypal_controller.rb | 8 +------- .../payment_gateways/stripe_controller.rb | 12 +++--------- 4 files changed, 11 insertions(+), 18 deletions(-) diff --git a/app/controllers/checkout_controller.rb b/app/controllers/checkout_controller.rb index fe0ffb8301..fae0c9ba25 100644 --- a/app/controllers/checkout_controller.rb +++ b/app/controllers/checkout_controller.rb @@ -54,9 +54,8 @@ class CheckoutController < ::BaseController end def load_order - @order = current_order + load_checkout_order - return order_invalid! if order_invalid_for_checkout? return handle_invalid_stock unless valid_order_line_items? before_address diff --git a/app/controllers/concerns/order_completion.rb b/app/controllers/concerns/order_completion.rb index 41145645f4..d0197bef89 100644 --- a/app/controllers/concerns/order_completion.rb +++ b/app/controllers/concerns/order_completion.rb @@ -31,6 +31,12 @@ module OrderCompletion new_order.tokenized_permission.save! end + def load_checkout_order + @order = current_order + + order_invalid! if order_invalid_for_checkout? + end + def order_completion_route main_app.order_path(@order, order_token: @order.token) end diff --git a/app/controllers/payment_gateways/paypal_controller.rb b/app/controllers/payment_gateways/paypal_controller.rb index b90726e053..60d6f35764 100644 --- a/app/controllers/payment_gateways/paypal_controller.rb +++ b/app/controllers/payment_gateways/paypal_controller.rb @@ -7,7 +7,7 @@ module PaymentGateways before_action :enable_embedded_shopfront before_action :destroy_orphaned_paypal_payments, only: :confirm - before_action :load_order, only: [:express, :confirm] + before_action :load_checkout_order, only: [:express, :confirm] before_action :handle_insufficient_stock, only: [:express, :confirm] before_action :permit_parameters! @@ -60,12 +60,6 @@ module PaymentGateways private - def load_order - @order = current_order - - order_invalid! if order_invalid_for_checkout? - end - def express_checkout_request_details(order) { SetExpressCheckoutRequestDetails: { diff --git a/app/controllers/payment_gateways/stripe_controller.rb b/app/controllers/payment_gateways/stripe_controller.rb index 6ee892087f..cb2e94ef5c 100644 --- a/app/controllers/payment_gateways/stripe_controller.rb +++ b/app/controllers/payment_gateways/stripe_controller.rb @@ -4,24 +4,18 @@ class StripeController < BaseController include OrderStockCheck include OrderCompletion - before_action :load_order, only: :confirm + before_action :load_checkout_order, only: :confirm def confirm return processing_failed unless valid_payment_intent? + cancel_incomplete_payments && handle_insufficient_stock unless sufficient_stock? + process_payment_completion! end private - def load_order - @order = current_order - - return order_invalid! if order_invalid_for_checkout? - - (cancel_incomplete_payments && handle_insufficient_stock) unless sufficient_stock? - end - def valid_payment_intent? @valid_payment_intent ||= begin return false unless params["payment_intent"]&.starts_with?("pi_")