lib/eco/api/microcases/people_refresh.rb in eco-helpers-2.7.16 vs lib/eco/api/microcases/people_refresh.rb in eco-helpers-2.7.17
- old
+ new
@@ -7,38 +7,39 @@
# 2. It only includes new people if they are not dirty (they do not have pending updates)
# - This contingency wouldn't be necessary if the server worked perfectly.
# @param people [Eco::API::Organization::People] the people that needs refresh.
# @param include_created [Boolean] include people created during this session? (will check `:create` batch jobs).
# @return [Eco::API::Organization::People] the `People` object with the data.
- def people_refresh(people:, include_created: true)
+ def people_refresh(people:, include_created: true) # rubocop:disable Metrics/AbcSize
people = people.newFrom people.select do |person|
!person.new? || !person.dirty?
end
+
ini = people.length
+
if include_created
session.job_groups.find_jobs(type: :create).map do |job|
- to_add = job.people.select {|person| !person.dirty?}
+ to_add = job.people.reject(&:dirty?)
people = people.merge(to_add)
end
end
created = people.length - ini
- msg = "Going to refresh #{people.length} people with server data"
- msg += " (including #{created} that were created)" if created > 0
+ msg = "Going to refresh #{people.length} people with server data"
+ msg += " (including #{created} that were created)" if created.positive?
logger.info(msg)
- start = Time.now
+ start = Time.now
entries = session.batch.get_people(people, silent: true)
secs = (Time.now - start).round(3)
cnt = entries.count
per_sec = (cnt.to_f / secs).round(2)
logger.info("Re-loaded #{cnt} people (out of #{people.length}) in #{secs} seconds (#{per_sec} people/sec)")
missing = people.length - entries.length
- logger.error("Missed to obtain #{missing} people during the refresh") if missing > 0
+ logger.error("Missed to obtain #{missing} people during the refresh") if missing.positive?
Eco::API::Organization::People.new(entries)
end
-
end
end
end