module Eco module API class MicroCases # Sets all the core details, but the supervisor. # @note `supervisor_id` requires a special treatment, and therefore is always excluded. # @param entry [PersonEntry] the input entry with the data we should set on person. # @param person [Ecoportal::API::V1::Person] the person we want to update, carrying the changes to be done. # @param people [Eco::API::Organization::People] target existing _People_ of the current update. # @param supers_job [Eco::API::Session::Batch::Job] the job that will run the supers . # @param options [Hash] the options. 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 end end end