mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-01 02:03:22 +00:00
Tidy up #redirect_to_payment_gateway
This commit is contained in:
@@ -191,17 +191,19 @@ class CheckoutController < ::BaseController
|
||||
end
|
||||
|
||||
def redirect_to_payment_gateway
|
||||
payment_method_id = params.dig(:order, :payments_attributes, 0, :payment_method_id)
|
||||
payment_method = Spree::PaymentMethod.find(payment_method_id)
|
||||
|
||||
redirect_url = payment_method&.external_payment_url(order: @order)
|
||||
|
||||
return if redirect_url.blank?
|
||||
return unless selected_payment_method.external_gateway?
|
||||
return unless (redirect_url = selected_payment_method.external_payment_url(order: @order))
|
||||
|
||||
render json: { path: redirect_url }, status: :ok
|
||||
true
|
||||
end
|
||||
|
||||
def selected_payment_method
|
||||
@selected_payment_method ||= Spree::PaymentMethod.find(
|
||||
params.dig(:order, :payments_attributes, 0, :payment_method_id)
|
||||
)
|
||||
end
|
||||
|
||||
def order_error
|
||||
if @order.errors.present?
|
||||
@order.errors.full_messages.to_sentence
|
||||
|
||||
@@ -423,6 +423,7 @@ describe CheckoutController, type: :controller do
|
||||
|
||||
it "should call Stripe redirect and redirect if a path is provided" do
|
||||
expect(Spree::PaymentMethod).to receive(:find).and_return(payment_method)
|
||||
expect(payment_method).to receive(:external_gateway?).and_return(true)
|
||||
expect(payment_method).to receive(:external_payment_url).and_return("test_path")
|
||||
|
||||
spree_post :update,
|
||||
|
||||
Reference in New Issue
Block a user