Class: Workarea::UpdateEmail

Inherits:
Object
  • Object
show all
Includes:
Sidekiq::CallbacksWorker, Sidekiq::Worker
Defined in:
app/workers/workarea/update_email.rb

Instance Method Summary collapse

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