Class: Eco::API::UseCases::Default::People::Utils::ChangeEMailCase
- Inherits:
-
Common::Loaders::UseCase
- Object
- Common::Loaders::Base
- Common::Loaders::CaseBase
- Common::Loaders::UseCase
- Eco::API::UseCases::Default::People::Utils::ChangeEMailCase
- Defined in:
- lib/eco/api/usecases/default/people/utils/change_email_case.rb
Instance Attribute Summary
Attributes included from Language::AuxiliarLogger
Instance Method Summary collapse
-
#main(entries, people, session, options, usecase) ⇒ Object
Target people with non-up-to-date emails will be updated to the new email.
Methods inherited from Common::Loaders::UseCase
Methods included from Common::Loaders::UseCase::CliIdentify
Methods included from Common::Loaders::UseCase::TargetModel
Methods included from Common::Loaders::UseCase::Type
Methods inherited from Common::Loaders::CaseBase
#name, name_only_once!, original_name
Methods inherited from Common::Loaders::Base
<=>, created_at, #initialize, set_created_at!
Methods included from Language::Klass::InheritableClassVars
#inheritable_attrs, #inheritable_class_vars, #inherited
Methods included from Language::Klass::Naming
#instance_variable_name, #to_constant
Methods included from Language::Klass::Hierarchy
Methods included from Language::Klass::Builder
Methods included from Language::Klass::Uid
Methods included from Language::Klass::Resolver
#class_resolver, #resolve_class
Methods included from Language::Klass::Const
#if_const, #redef_without_warning
Methods included from Language::AuxiliarLogger
Constructor Details
This class inherits a constructor from Eco::API::Common::Loaders::UseCase
Instance Method Details
#main(entries, people, session, options, usecase) ⇒ Object
Target people with non-up-to-date emails will be updated to the new email
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/eco/api/usecases/default/people/utils/change_email_case.rb', line 6 def main(entries, people, session, , usecase) 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, %i[core account]) micro.with_each_present(entries, people, , 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) {|pers| pers.account = nil } change.add(person) {|pers| pers.email = entry.email } invite.add(person) do |pers| pers.account = account_doc if account_doc pers.supervisor_id = super_id end end end end |