Merge pull request #13834 from mkllnk/pay-methods

Simplify code listing available payment method types
This commit is contained in:
Rachel Arnould
2026-01-23 22:52:29 +01:00
committed by GitHub
4 changed files with 9 additions and 46 deletions

View File

@@ -11,10 +11,10 @@ module Spree
respond_to :html
PAYMENT_METHODS = %w{
Spree::PaymentMethod::Check
Spree::Gateway::PayPalExpress
Spree::Gateway::StripeSCA
}.index_with(&:constantize).freeze
Spree::PaymentMethod::Check
}.freeze
def create
force_environment
@@ -95,7 +95,7 @@ module Spree
@payment_method = PaymentMethod.find(params[:pm_id])
end
else
@payment_method = PAYMENT_METHODS.fetch(params[:provider_type], PaymentMethod).new
@payment_method = PaymentMethod.new(type: params[:provider_type])
end
render partial: 'provider_settings'
@@ -117,7 +117,7 @@ module Spree
end
def validate_payment_method_provider
valid_payment_methods = Rails.application.config.spree.payment_methods.map(&:to_s)
valid_payment_methods = PAYMENT_METHODS
return if valid_payment_methods.include?(params[:payment_method][:type])
flash[:error] = Spree.t(:invalid_payment_provider)
@@ -133,13 +133,11 @@ module Spree
end
def load_providers
providers = Gateway.providers.sort_by(&:name)
providers = PAYMENT_METHODS.dup
unless show_stripe?
providers.reject! { |provider| stripe_provider?(provider) }
end
providers.delete("Spree::Gateway::StripeSCA") unless show_stripe?
providers
providers.map(&:constantize)
end
# Show Stripe as an option if enabled, or if the
@@ -164,10 +162,6 @@ module Spree
@payment_method.try(:type) == "Spree::Gateway::StripeSCA"
end
def stripe_provider?(provider)
provider.name.ends_with?("StripeSCA")
end
def base_params
@base_params ||= PermittedAttributes::PaymentMethod.new(params[:payment_method]).
call.to_h.with_indifferent_access

View File

@@ -52,10 +52,6 @@ module Spree
.where(environment: [Rails.env, "", nil])
}
def self.providers
Rails.application.config.spree.payment_methods
end
def configured?
!stripe? || stripe_configured?
end
@@ -118,8 +114,8 @@ module Spree
end
def self.clean_name
i18n_key = "spree.admin.payment_methods.providers.#{name.demodulize.downcase}"
I18n.t(i18n_key)
scope = "spree.admin.payment_methods.providers"
I18n.t(name.demodulize.downcase, scope:)
end
private

View File

@@ -76,14 +76,6 @@ module Openfoodnetwork
end
end
initializer "spree.register.payment_methods" do |app|
Rails.application.reloader.to_prepare do
app.config.spree.payment_methods = [
Spree::PaymentMethod::Check
]
end
end
initializer "spree.mail.settings" do |_app|
Rails.application.reloader.to_prepare do
Spree::Core::MailSettings.init
@@ -131,14 +123,6 @@ module Openfoodnetwork
end
end
# Register Spree payment methods
initializer "spree.gateway.payment_methods", :after => "spree.register.payment_methods" do |app|
Rails.application.reloader.to_prepare do
app.config.spree.payment_methods << Spree::Gateway::StripeSCA
app.config.spree.payment_methods << Spree::Gateway::PayPalExpress
end
end
initializer "ofn.reports" do |app|
module ::Reporting; end
Rails.application.reloader.to_prepare do

View File

@@ -294,17 +294,6 @@ RSpec.describe Spree::Admin::PaymentMethodsController do
expect(assigns(:payment_method)).to be_a_new Spree::Gateway::PayPalExpress
expect(response).to render_template partial: '_provider_settings'
end
context "with a non valid payment method" do
it "renders provider settings with a new generic payment method" do
spree_get :show_provider_preferences,
pm_id: "",
provider_type: "Spree::Gateway::Hacked"
expect(assigns(:payment_method)).to be_a_new Spree::PaymentMethod
expect(response).to render_template partial: '_provider_settings'
end
end
end
end
end