Sha256: 65582187866485c194986c2029d57c22adca65b241d1239130246cf6f5d57709

Contents?: true

Size: 1.17 KB

Versions: 109

Compression:

Stored size: 1.17 KB

Contents

class Eco::API::UseCases::DefaultCases::ChangeEMailCase < Eco::API::Common::Loaders::UseCase
  name "change-email"
  type :sync
  
  # Target people with non-up-to-date emails will be updated to the new email
  def main(entries, people, session, options, usecase)
    micro    = session.micro
    remove   = session.new_job("main", "remove account", :update, usecase, :account)
    change   = session.new_job("main", "change email",   :update, usecase, :core)
    invite   = session.new_job("post", "add account",    :update, usecase, [:core, :account])

    micro.with_each_present(entries, people, options, log_starter: true) do |entry, person|
      if entry.email != person.email
        super_id      = person.supervisor_id
        s_account_doc = person.account&.doc
        account_doc   = s_account_doc ? JSON.parse(s_account_doc.to_json) : nil

        remove.add(person) {|person| person.account = nil        }
        change.add(person) {|person| person.email   = entry.email}
        invite.add(person) do |person|
          person.account       = account_doc if account_doc
          person.supervisor_id = super_id
        end
      end
    end
  end

end

Version data entries

109 entries across 109 versions & 1 rubygems

Version Path
eco-helpers-2.0.57 lib/eco/api/usecases/default_cases/change_email_case.rb
eco-helpers-2.0.56 lib/eco/api/usecases/default_cases/change_email_case.rb
eco-helpers-2.0.55 lib/eco/api/usecases/default_cases/change_email_case.rb
eco-helpers-2.0.54 lib/eco/api/usecases/default_cases/change_email_case.rb
eco-helpers-2.0.53 lib/eco/api/usecases/default_cases/change_email_case.rb
eco-helpers-2.0.52 lib/eco/api/usecases/default_cases/change_email_case.rb
eco-helpers-2.0.51 lib/eco/api/usecases/default_cases/change_email_case.rb
eco-helpers-2.0.50 lib/eco/api/usecases/default_cases/change_email_case.rb
eco-helpers-2.0.49 lib/eco/api/usecases/default_cases/change_email_case.rb
eco-helpers-2.0.48 lib/eco/api/usecases/default_cases/change_email_case.rb
eco-helpers-2.0.47 lib/eco/api/usecases/default_cases/change_email_case.rb
eco-helpers-2.0.46 lib/eco/api/usecases/default_cases/change_email_case.rb
eco-helpers-2.0.45 lib/eco/api/usecases/default_cases/change_email_case.rb
eco-helpers-2.0.44 lib/eco/api/usecases/default_cases/change_email_case.rb
eco-helpers-2.0.43 lib/eco/api/usecases/default_cases/change_email_case.rb
eco-helpers-2.0.42 lib/eco/api/usecases/default_cases/change_email_case.rb
eco-helpers-2.0.41 lib/eco/api/usecases/default_cases/change_email_case.rb
eco-helpers-2.0.40 lib/eco/api/usecases/default_cases/change_email_case.rb
eco-helpers-2.0.39 lib/eco/api/usecases/default_cases/change_email_case.rb
eco-helpers-2.0.38 lib/eco/api/usecases/default_cases/change_email_case.rb