diff options
Diffstat (limited to 'app/decorators/core/models/solidus_subscriptions/spree/wallet_payment_source/report_default_change_to_subscriptions.rb')
-rw-r--r-- | app/decorators/core/models/solidus_subscriptions/spree/wallet_payment_source/report_default_change_to_subscriptions.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/app/decorators/core/models/solidus_subscriptions/spree/wallet_payment_source/report_default_change_to_subscriptions.rb b/app/decorators/core/models/solidus_subscriptions/spree/wallet_payment_source/report_default_change_to_subscriptions.rb new file mode 100644 index 0000000..6ee754e --- /dev/null +++ b/app/decorators/core/models/solidus_subscriptions/spree/wallet_payment_source/report_default_change_to_subscriptions.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +module SolidusSubscriptions + module Spree + module WalletPaymentSource + module ReportDefaultChangeToSubscriptions + def self.prepended(base) + base.after_save :report_default_change_to_subscriptions + end + + private + + def report_default_change_to_subscriptions + return if !previous_changes.key?('default') || !default? + + user.subscriptions.with_default_payment_source.each do |subscription| + ::Spree::Event.fire( + 'solidus_subscriptions.subscription_payment_method_changed', + subscription: subscription, + ) + end + end + end + end + end +end + +Spree::WalletPaymentSource.prepend(SolidusSubscriptions::Spree::WalletPaymentSource::ReportDefaultChangeToSubscriptions) |