Module: Eco::API::MicroCases::People::ApplyChanges::SetCoreWithSupervisor

Included in:
Eco::API::MicroCases::People::ApplyChanges
Defined in:
lib/eco/api/microcases/people/apply_changes/set_core_with_supervisor.rb

Instance Method Summary collapse

Instance Method Details

#set_core_with_supervisor(entry, person, people, supers_job, options) ⇒ Object

Note:

supervisor_id requires a special treatment, and therefore is always excluded.

Sets all the core details, but the supervisor.

Parameters:

  • entry (PersonEntry)

    the input entry with the data we should set on person.

  • person (Ecoportal::API::V1::Person)

    the person we want to update, carrying the changes to be done.

  • people (Eco::API::Organization::People)

    target existing People of the current update.

  • supers_job (Eco::API::Session::Batch::Job)

    the job that will run the supers .

  • options (Hash)

    the options.



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/eco/api/microcases/people/apply_changes/set_core_with_supervisor.rb', line 14

def set_core_with_supervisor(entry, person, people, supers_job, options)
  return if options.dig(:exclude, :core) && !person.new?

  micro.set_core(entry, person, options)

  return unless entry.supervisor_id?

  micro.set_supervisor(
    person,
    entry.supervisor_id,
    people,
    options
  ) do |unknown_id|
    # delay setting supervisor if does not exit
    supers_job.add(person) do |pers|
      micro.set_supervisor(pers, unknown_id, people, options)
    end
  end
end