summaryrefslogtreecommitdiff
path: root/app/decorators/core/models/solidus_subscriptions/spree/wallet_payment_source/report_default_change_to_subscriptions.rb
blob: 6ee754e7bb05cedf98723f0e5bcfb6452dea7696 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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)