From 542e3ad1aabaac92772f77f7072e282483b53e91 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Thu, 16 Dec 2021 20:28:43 +0000 Subject: [PATCH] Reuse StripeScaPaymentAuthorize in Admin::PaymentsController --- app/controllers/spree/admin/payments_controller.rb | 9 ++++----- .../order/stripe_sca_payment_authorize.rb | 4 ++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/app/controllers/spree/admin/payments_controller.rb b/app/controllers/spree/admin/payments_controller.rb index 543ec7d707..566701ea66 100644 --- a/app/controllers/spree/admin/payments_controller.rb +++ b/app/controllers/spree/admin/payments_controller.rb @@ -174,15 +174,14 @@ module Spree def authorize_stripe_sca_payment return unless @payment.payment_method.instance_of?(Spree::Gateway::StripeSCA) - @payment.authorize!(full_order_path(@payment.order)) + OrderManagement::Order::StripeScaPaymentAuthorize. + new(@order, payment: @payment, off_session: true). + call!(full_order_path(@order)) - unless @payment.pending? || @payment.requires_authorization? - raise Spree::Core::GatewayError, I18n.t('authorization_failure') - end + raise Spree::Core::GatewayError, I18n.t('authorization_failure') if @order.errors.any? return unless @payment.requires_authorization? - PaymentMailer.authorize_payment(@payment).deliver_later raise Spree::Core::GatewayError, I18n.t('action_required') end diff --git a/engines/order_management/app/services/order_management/order/stripe_sca_payment_authorize.rb b/engines/order_management/app/services/order_management/order/stripe_sca_payment_authorize.rb index 8e135c2fc3..f16c8ce57c 100644 --- a/engines/order_management/app/services/order_management/order/stripe_sca_payment_authorize.rb +++ b/engines/order_management/app/services/order_management/order/stripe_sca_payment_authorize.rb @@ -10,9 +10,9 @@ module OrderManagement class StripeScaPaymentAuthorize include FullUrlHelper - def initialize(order, off_session: false) + def initialize(order, payment: nil, off_session: false) @order = order - @payment = OrderPaymentFinder.new(order).last_pending_payment + @payment = payment || OrderPaymentFinder.new(order).last_pending_payment @off_session = off_session end