Class: Workarea::UpdateEmail
- Inherits:
-
Object
- Object
- Workarea::UpdateEmail
- Includes:
- Sidekiq::CallbacksWorker, Sidekiq::Worker
- Defined in:
- app/workers/workarea/update_email.rb
Instance Method Summary collapse
- #perform(id, changes) ⇒ Object
- #update_metrics(old_email, new_email) ⇒ Object
- #update_payment_profile(id, old_email, new_email) ⇒ Object
Instance Method Details
#perform(id, changes) ⇒ Object
10 11 12 13 14 15 16 |
# File 'app/workers/workarea/update_email.rb', line 10 def perform(id, changes) return unless changes['email'].present? && changes['email'].first.present? old_email, new_email = changes['email'] update_payment_profile(id, old_email, new_email) update_metrics(old_email, new_email) end |
#update_metrics(old_email, new_email) ⇒ Object
25 26 27 28 29 30 31 |
# File 'app/workers/workarea/update_email.rb', line 25 def update_metrics(old_email, new_email) old_metrics = Metrics::User.find(old_email) rescue nil return if old_metrics.blank? new_metrics = Metrics::User.find_or_initialize_by(id: new_email) new_metrics.merge!(old_metrics) end |
#update_payment_profile(id, old_email, new_email) ⇒ Object
18 19 20 21 22 23 |
# File 'app/workers/workarea/update_email.rb', line 18 def update_payment_profile(id, old_email, new_email) user = User.find(id) user.email = old_email # set old email so we lookup by old email value Payment::Profile.update_email(PaymentReference.new(user), new_email) end |