eco-helpers 2.0.42 → 2.0.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c14b952724b755aa88b633094baf947b8c32b3a8699f77e8a4d63cdc94e10765
4
- data.tar.gz: 015fd112ec97cb490c1bae82cdbd744256ca8879b98578f4c2442a0730652bf5
3
+ metadata.gz: fd9b2a6564e5ce38fa3ed762ab04f5e4e79b1a6580738d9091b846233c6fb66e
4
+ data.tar.gz: ac0200ad60b30fc0d40997b4975f016daee8cd48c881bfecae106ca0867ff123
5
5
  SHA512:
6
- metadata.gz: cbdf02bb1b3323069682c6b9dca370b598d846fc185e8db6dba7e337f1939a41f00b17d60bcb599c4f8abf9c0c6a713495e88258eb5a521b061ffa01c63d552d
7
- data.tar.gz: b656b2a52dc65a7e2ae582ec68999de0d7551a6a17c5b83a3763ead94d161a8c969dc76add52ec6a93ebbfd68b5b47293c06fe3e33c8cfaacc4ad6273bf5b17f
6
+ metadata.gz: f72270169fd60eaee60b27d333391bc6d2235fe856752d9f7dcd5d5aca18fd129e148cd0830bea37cd86833cabc64f10e4fb09e71c4ba2ba9b6912313da82b4a
7
+ data.tar.gz: 690b338d062020a6d80794d794f00f8ce9c263bb8b12a84f774f50193bd49ff474b6a49f670a1e05df9a2db88f70d3639c54582fc8706617c44123753c0a7b9e
data/CHANGELOG.md CHANGED
@@ -1,6 +1,54 @@
1
1
  # Change Log
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
+ ## [2.0.46] - 2021-12-24
5
+
6
+ ### Added
7
+ - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
8
+ - added counter of retrieved entries (to be able to compare with matched initially scoped results)
9
+ - added also counter of failed to retrieve oozes
10
+ - added also counter of double ups in search pagination
11
+ - counter for updated pages and pages that failed update
12
+ - `Eco::API::Session#enviro_name`: to identify in whic environment we are running
13
+
14
+ ### Changed
15
+ - upgraded `ecoportal-api-v2` dependency
16
+ - `Eco::API::UseCases::OozeSamples::OozeBaseCase#update_ooze`
17
+ - To return `false` if there was request made to the server
18
+ - To return `Reponse` if there was request made to the server
19
+
20
+ ### Fixed
21
+ - Changed the `workflow` in
22
+ - `on(:end)` to do not recache people if there were no `:sync` or `:transform` cases
23
+ - `Eco::API::UseCases::OozeSamples::OozeRunBaseCase#update_ooze`
24
+ - It's parent had parameter (it as a child should so)
25
+ - `Eco::API::UseCases::OozeSamples::OozeBaseCase#process_ooze`
26
+ - It was not retrieving the `ooze` unless explicitly passed as parameter
27
+ - This did not play well with child implementations that expect it to retrieve it based on `ooze_id` cli argument
28
+
29
+ ## [2.0.45] - 2021-12-15
30
+
31
+ ### Added
32
+ - `Eco::API::UseCases::OozeSamples::RegisterExportCase`
33
+
34
+ ### Changed
35
+ - Upgrade `ecoportal-api` dependency
36
+ - Upgrade `ecoportal-api-v2` dependency
37
+
38
+ ## [2.0.44] - 2021-11-25
39
+
40
+ ### Changed
41
+ - Upgrade `ecoportal-api` dependency
42
+
43
+ ## [2.0.43] - 2021-11-25
44
+
45
+ ### Added
46
+ - `Eco::API::Session::Batch::Job` added better **logging**
47
+
48
+ ### Changed
49
+ - `Eco::API::Session::Batch` added **resilience** and **recovery** to connection errors
50
+ - `Eco::API::Policies::DefaultPolicies::UserAccess` changed logging from `warn` to `info`.
51
+
4
52
  ## [2.0.42] - 2021-10-30
5
53
 
6
54
  ### Added
data/eco-helpers.gemspec CHANGED
@@ -30,8 +30,8 @@ Gem::Specification.new do |spec|
30
30
  spec.add_development_dependency "yard", ">= 0.9.26", "< 0.10"
31
31
  spec.add_development_dependency "redcarpet", ">= 3.5.1", "< 3.6"
32
32
 
33
- spec.add_dependency 'ecoportal-api', '>= 0.8.3', '< 0.9'
34
- spec.add_dependency 'ecoportal-api-v2', '>= 0.8.19', '< 0.9'
33
+ spec.add_dependency 'ecoportal-api', '>= 0.8.4', '< 0.9'
34
+ spec.add_dependency 'ecoportal-api-v2', '>= 0.8.23', '< 0.9'
35
35
  spec.add_dependency 'aws-sdk-s3', '>= 1.83.0', '< 2'
36
36
  spec.add_dependency 'aws-sdk-ses', '>= 1.36.0', '< 2'
37
37
  spec.add_dependency 'dotenv', '>= 2.7.6', '< 2.8'
@@ -30,7 +30,7 @@ module Eco
30
30
  people_load(modifier: modifier - [:newest, :file])
31
31
  end
32
32
  when modifier.include?(:api)
33
- logger.info("Going to get all the people via API")
33
+ logger.info("Going to get all the people via API (load)")
34
34
 
35
35
  start = Time.now
36
36
  session.batch.get_people.tap do |people|
@@ -22,7 +22,7 @@ class Eco::API::Policies::DefaultPolicies::UserAccess < Eco::API::Common::Loader
22
22
  def warn_account_removal!
23
23
  if account_removed_count > 0
24
24
  msg = "(DefaultPolicy on job '#{job.name}') Removed account to #{account_removed_count} people"
25
- session.logger.warn(msg)
25
+ session.logger.info(msg)
26
26
  end
27
27
  end
28
28
 
@@ -176,6 +176,7 @@ module Eco
176
176
  if pqueue.length > 0
177
177
  req_backup = as_update(pqueue, add_feedback: false)
178
178
  backup_update(req_backup)
179
+ logger.debug("Job ('#{name}':#{type}): going to launch batch against #{pqueue.count} entries")
179
180
  session.batch.launch(pqueue, method: type).tap do |job_status|
180
181
  @status = job_status
181
182
  status.root = self
@@ -334,7 +335,7 @@ module Eco
334
335
  handlers.each do |handler|
335
336
  if entries = err_types[handler.name]
336
337
  handler_job = subjobs_add("#{self.name} => #{handler.name}", usecase: handler)
337
- logger.debug("Running error handler #{handler.name}")
338
+ logger.debug("Running error handler #{handler.name} (against #{entries.count} entries)")
338
339
  handler.launch(people: people(entries), session: session, options: options, job: handler_job)
339
340
  logger.debug("Launching job of error handler: #{handler_job.name}")
340
341
  handler_job.launch(simulate: simulate)
@@ -92,6 +92,7 @@ module Eco
92
92
  return people_api.get_all(params: params, silent: silent)
93
93
  end
94
94
 
95
+
95
96
  def batch_from(data, method:, params: {}, silent: false)
96
97
  fatal "Invalid batch method: #{method}." if !self.class.valid_method?(method)
97
98
  return nil if !data || !data.is_a?(Enumerable)
@@ -101,12 +102,23 @@ module Eco
101
102
  params = {per_page: DEFAULT_BATCH_BLOCK}.merge(params)
102
103
  per_page = params[:per_page] || DEFAULT_BATCH_BLOCK
103
104
 
105
+ launch_batch(data,
106
+ method: method,
107
+ per_page: per_page,
108
+ people_api: people_api,
109
+ silent: silent
110
+ )
111
+ end
112
+
113
+ def launch_batch(data, method:, status: nil, job_mode: true, per_page: DEFAULT_BATCH_BLOCK, people_api: api&.people, silent: false)
104
114
  iteration = 1; done = 0
105
115
  iterations = (data.length.to_f / per_page).ceil
106
116
 
107
- Eco::API::Session::Batch::Status.new(enviro, queue: data, method: method).tap do |status|
117
+ status ||= Eco::API::Session::Batch::Status.new(enviro, queue: data, method: method)
118
+ status.tap do |status|
108
119
  start_time = Time.now
109
120
  start_slice = Time.now; slice = []
121
+ pending_for_server_error = data.to_a[0..-1]
110
122
  data.each_slice(per_page) do |slice|
111
123
  msg = "starting batch '#{method}' iteration #{iteration}/#{iterations},"
112
124
  msg += " with #{slice.length} entries of #{data.length} -- #{done} done"
@@ -115,11 +127,14 @@ module Eco
115
127
 
116
128
  start_slice = Time.now
117
129
  offer_retry_on(Ecoportal::API::Errors::TimeOut) do
118
- people_api.batch do |batch|
130
+ people_api.batch(job_mode: false) do |batch|
119
131
  slice.each do |person|
120
132
  batch.public_send(method, person) do |response|
121
133
  faltal("Request with no response") unless !!response
122
- status[person] = response
134
+ unless server_error?(response)
135
+ pending_for_server_error.delete(person)
136
+ status[person] = response
137
+ end
123
138
  end
124
139
  end
125
140
  end # end batch
@@ -128,9 +143,31 @@ module Eco
128
143
  iteration += 1
129
144
  done += slice.length
130
145
  end # next slice
146
+
147
+ # temporary working around (due to back-end problems with batch/jobs)
148
+ unless pending_for_server_error.empty?
149
+ msg = "Going to re-try #{pending_for_server_error.count} due to server errors"
150
+ logger.info(msg) unless silent
151
+ launch_batch(pending_for_server_error,
152
+ status: status,
153
+ method: method,
154
+ job_mode: false,
155
+ per_page: per_page,
156
+ people_api: people_api,
157
+ silent: silent
158
+ )
159
+ end
131
160
  end
132
161
  end
133
162
 
163
+ def server_error?(response)
164
+ res_status = response.status
165
+ server_error = !res_status || res_status.server_error?
166
+ other_error = !server_error && (!res_status.code || res_status.code < 100)
167
+ no_body = !server_error && !other_error && !response.body
168
+ server_error || other_error || no_body
169
+ end
170
+
134
171
  def offer_retry_on(error_type, retries_left = 3, &block)
135
172
  begin
136
173
  block.call
@@ -17,6 +17,11 @@ module Eco
17
17
  logger.debug("LINE COMMAND: #{$0} #{ARGV.join(" ")}")
18
18
  end
19
19
 
20
+ # @retrun [String] the name of the current environment
21
+ def enviro_name
22
+ config.active_enviro
23
+ end
24
+
20
25
  # @return [Eco::API::Session::Batch] provides helper to launch batch operations.
21
26
  def batch
22
27
  @batch ||= Batch.new(enviro)
@@ -20,10 +20,11 @@ class Eco::API::UseCases::OozeSamples::OozeBaseCase < Eco::API::Common::Loaders:
20
20
  end
21
21
 
22
22
  # Write here your script
23
- def process_ooze(ooze = target)
23
+ def process_ooze(ooz = target)
24
+ ooz ||= ooze
24
25
  raise "You need to inherit from this class ('#{self.class}') and call super with a block" unless block_given?
25
- yield(ooze)
26
- update_ooze(ooze)
26
+ yield(ooz)
27
+ update_ooze(ooz)
27
28
  end
28
29
 
29
30
  protected
@@ -109,10 +110,12 @@ class Eco::API::UseCases::OozeSamples::OozeBaseCase < Eco::API::Common::Loaders:
109
110
  exit_error "Stage '#{id_name}' doesn't exist in ooze '#{ooze_id}'"
110
111
  end
111
112
 
113
+ # It fill update the ooze only if it's dirty (it carries changes)
114
+ # @return [Boolean, Response] `false` if there was not request against the server, `Response` otherwise
112
115
  def update_ooze(ooze = target)
113
116
  if !options[:simulate]
114
- return unless dirty?(ooze)
115
-
117
+ return false unless dirty?(ooze)
118
+
116
119
  ooze.validate.tap do |validation|
117
120
  raise validation if validation.is_a?(String)
118
121
  end
@@ -133,6 +136,7 @@ class Eco::API::UseCases::OozeSamples::OozeBaseCase < Eco::API::Common::Loaders:
133
136
  end
134
137
  backup_patch!(ooze)
135
138
  exit(0) if dirty?(ooze) && dry_count > DRY_COUNT
139
+ false
136
140
  end
137
141
  end
138
142
 
@@ -39,9 +39,9 @@ class Eco::API::UseCases::OozeSamples::OozeRunBaseCase < Eco::API::UseCases::Ooz
39
39
  options.dig(:source, :stage_id)
40
40
  end
41
41
 
42
- def update_ooze
42
+ def update_ooze(ooz = target)
43
43
  prompt_to_confirm!
44
- super
44
+ super(ooz)
45
45
  end
46
46
 
47
47
  def exit_if_no_changes!
@@ -0,0 +1,184 @@
1
+ # Use case to update a register
2
+ # @note
3
+ # - You can define methods `filters` and `search` to change the target entries of the register
4
+ # - You need to define the `process_ooze` method
5
+ # This case expects `options[:source][:register_id]`
6
+ class Eco::API::UseCases::OozeSamples::RegisterExportCase < Eco::API::Common::Loaders::UseCase
7
+
8
+ class << self
9
+ # @return [Integer] the number of pages to be processed in each batch
10
+ def batch_size(size = nil)
11
+ @batch_size ||= 25
12
+ return @batch_size unless size
13
+ @batch_size = size
14
+ end
15
+ end
16
+
17
+ include Eco::API::UseCases::OozeSamples::Helpers
18
+
19
+ name "register-export-case"
20
+ type :other
21
+
22
+ attr_reader :session, :options, :usecase
23
+ attr_reader :target
24
+
25
+ def main(session, options, usecase)
26
+ options[:end_get] = false
27
+ @session = session; @options = options; @usecase = usecase
28
+ @target = nil
29
+ raise "You need to inherit from this class ('#{self.class}') and call super with a block" unless block_given?
30
+ with_each_entry do |ooze|
31
+ process_ooze(ooze)
32
+ end
33
+ yield
34
+ end
35
+
36
+ # Write here your script
37
+ def process_ooze(ooze = target)
38
+ raise "You need to inherit from this class ('#{self.class}') and call super with a block" unless block_given?
39
+ yield(ooze)
40
+ end
41
+
42
+ private
43
+
44
+ def new_target(object)
45
+ @target = object
46
+ end
47
+
48
+ def with_each_entry
49
+ batched_search_results do |page_results|
50
+ page_results.each do |page_result|
51
+ if ooz = build_full_ooze(page_result.id)
52
+ yield(ooz)
53
+ end
54
+ end
55
+ end
56
+ end
57
+
58
+ # It builds a full page model (not updatable)
59
+ # @note If it's a page instance with stages, there's where it will be handy
60
+ # @param ooze_id [String]
61
+ # @return [Ecoportal::API::V2::Page]
62
+ def build_full_ooze(ooze_id)
63
+ if page = ooze(ooze_id)
64
+ return page unless page.is_a?(Ecoportal::API::V2::Pages::PageStage)
65
+ secs_doc = page.sections.doc
66
+ flds_doc = page.components.doc
67
+ pending_stage_ids = page.stages.map(&:id) - [page.current_stage_id]
68
+ pending_stage_ids.each do |id|
69
+ if page = stage(id, ooze: page)
70
+ page.sections.doc.each do |sec_doc|
71
+ unless secs_doc.find {|sec| sec["id"] == sec_doc["id"]}
72
+ secs_doc << sec_doc
73
+ end
74
+ end
75
+ page.components.doc.each do |comp_doc|
76
+ unless flds_doc.find {|fld| fld["id"] == comp_doc["id"]}
77
+ flds_doc << comp_doc
78
+ end
79
+ end
80
+ end
81
+ end
82
+ Ecoportal::API::V2::Page.new(page.doc)
83
+ end
84
+ end
85
+
86
+ #def update_oozes(batched_oozes = batch_queue)
87
+ # batched_oozes.each do |ooze|
88
+ # update_ooze(ooze)
89
+ # end
90
+ # batched_oozes.clear
91
+ #end
92
+
93
+ def batched_search_results
94
+ raise "Missing block. It yields in slices of #{self.class.batch_size} results" unless block_given?
95
+ results_preview
96
+ results = []
97
+ apiv2.registers.search(register_id, search_options) do |page_result|
98
+ results << page_result
99
+ if results.length >= self.class.batch_size
100
+ yield(results)
101
+ results = []
102
+ end
103
+ end
104
+ yield(results) unless results.empty?
105
+ end
106
+
107
+ def ooze(ooze_id = nil, stage_id: nil)
108
+ return target unless ooze_id
109
+ apiv2.pages.get(ooze_id, stage_id: stage_id).tap do |ooze|
110
+ if ooze
111
+ new_target(ooze)
112
+ logger.info("Got #{object_reference(ooze)}")
113
+ else
114
+ exit_error "Could not get ooze '#{ooze_id}'"
115
+ end
116
+ end
117
+ end
118
+
119
+ def stage(id_name = nil, ooze: target)
120
+ if ooze_id = ooze && ooze.id
121
+ exit_error "#{object_reference(ooze)} does not have stages!" unless ooze.stages?
122
+ else
123
+ exit_error "There's no target ooze to get retrieve stages from"
124
+ end
125
+
126
+ if stg = ooze.stages[id_name] || ooze.stages.get_by_name(id_name)
127
+ return ooze if ooze.respond_to?(:current_stage_id) && (ooze.current_stage_id == stg.id)
128
+ return apiv2.pages.get(ooze_id, stage_id: stg.id).tap do |stage|
129
+ if stage
130
+ new_target(stage)
131
+ logger.info("Got #{object_reference(stage)} from #{object_reference(ooze)}")
132
+ else
133
+ exit_error "Could not get stage '#{id_name}' in ooze '#{ooze_id}'"
134
+ end
135
+ end
136
+ end
137
+ exit_error "Stage '#{id_name}' doesn't exist in ooze '#{ooze_id}'"
138
+ end
139
+
140
+ def results_preview
141
+ apiv2.registers.search(register_id, search_options.merge(only_first: true)).tap do |search_results|
142
+ str_results = "Total target entries: #{search_results.total} (out of #{search_results.total_before_filtering})"
143
+ session.prompt_user("Do you want to proceed (y/N):", explanation: str_results, default: "N", timeout: 10) do |res|
144
+ unless res.upcase.start_with?("Y")
145
+ puts "..."
146
+ logger.info "Aborting script..."
147
+ exit(0)
148
+ end
149
+ end
150
+ end
151
+ end
152
+
153
+ def search_options
154
+ @search_options ||= {}.tap do |opts|
155
+ opts.merge!(sort: "created_at")
156
+ opts.merge!(dir: "asc")
157
+ opts.merge!(query: conf_search) if conf_search
158
+ opts.merge!(filters: conf_filters)
159
+ end
160
+ end
161
+
162
+ def conf_filters
163
+ return filters if self.respond_to?(:filters)
164
+ []
165
+ end
166
+
167
+ def conf_search
168
+ return search if self.respond_to?(:search)
169
+ end
170
+
171
+ def register_id
172
+ options.dig(:source, :register_id)
173
+ end
174
+
175
+ def apiv2
176
+ @apiv2 ||= session.api(version: :oozes)
177
+ end
178
+
179
+ def exit_error(msg)
180
+ logger.error(msg)
181
+ exit(1)
182
+ end
183
+
184
+ end
@@ -17,12 +17,30 @@ class Eco::API::UseCases::OozeSamples::RegisterUpdateCase < Eco::API::UseCases::
17
17
  name "register-update-case"
18
18
  type :other
19
19
 
20
+ attr_reader :retrieved_oozes, :non_retrieved_oozes
21
+ attr_reader :total_search_oozes, :dupped_search_oozes
22
+ attr_reader :ooze_result_ids, :updated_oozes, :failed_update_oozes
23
+
20
24
  def main(session, options, usecase, &block)
25
+ @retrieved_oozes = 0
26
+ @non_retrieved_oozes = 0
27
+ @dupped_search_oozes = 0
28
+ @ooze_result_ids = {}
29
+ @updated_oozes = 0
30
+ @failed_update_oozes = 0
31
+
21
32
  super(session, options, usecase) do
22
33
  with_each_entry do |ooze|
23
34
  process_ooze(&block)
24
35
  end
25
36
  end
37
+ msg = "Run end:\n"
38
+ msg += " • Search results: #{total_search_oozes}\n"
39
+ msg += " • Duplicated search results #{dupped_search_oozes}\n"
40
+ msg += " • Retrieved a total of #{retrieved_oozes}\n"
41
+ msg += " • Could not get #{non_retrieved_oozes} oozes.\n"
42
+ msg += " • Updated #{updated_oozes} oozes (failed update on #{failed_update_oozes} oozes).\n"
43
+ logger.info(msg)
26
44
  end
27
45
 
28
46
  def process_ooze(ooze = target)
@@ -47,7 +65,14 @@ class Eco::API::UseCases::OozeSamples::RegisterUpdateCase < Eco::API::UseCases::
47
65
  def with_each_entry
48
66
  batched_search_results do |page_results|
49
67
  page_results.each do |page_result|
68
+ if ooze_result_ids[page_result.id]
69
+ @dupped_search_oozes += 1
70
+ else
71
+ ooze_result_ids[page_result.id] = true
72
+ end
73
+
50
74
  if pending = queue_shift(page_result.id)
75
+
51
76
  if dirty?(pending)
52
77
  msg = "Inconsistent search results. "
53
78
  msg << "Launching update on '#{object_reference(pending)}' to be able to queue it back"
@@ -56,7 +81,11 @@ class Eco::API::UseCases::OozeSamples::RegisterUpdateCase < Eco::API::UseCases::
56
81
  end
57
82
  end
58
83
  if ooz = ooze(page_result.id)
84
+ @retrieved_oozes += 1
59
85
  yield(ooz)
86
+ else
87
+ @non_retrieved_oozes += 1
88
+ console.warn "Could not get page #{page_result.id}"
60
89
  end
61
90
  end
62
91
  update_oozes
@@ -113,7 +142,15 @@ class Eco::API::UseCases::OozeSamples::RegisterUpdateCase < Eco::API::UseCases::
113
142
 
114
143
  def update_oozes(batched_oozes = batch_queue)
115
144
  batched_oozes.each do |ooze|
116
- update_ooze(ooze)
145
+ update_ooze(ooze).tap do |result|
146
+ if result.is_a?(Ecoportal::API::Common::Response)
147
+ if result.success?
148
+ @updated_oozes += 1
149
+ else
150
+ @failed_update_oozes +=1
151
+ end
152
+ end
153
+ end
117
154
  end
118
155
  batched_oozes.clear
119
156
  end
@@ -127,6 +164,7 @@ class Eco::API::UseCases::OozeSamples::RegisterUpdateCase < Eco::API::UseCases::
127
164
 
128
165
  def results_preview
129
166
  apiv2.registers.search(register_id, search_options.merge(only_first: true)).tap do |search_results|
167
+ @total_search_oozes = search_results.total
130
168
  str_results = "Total target entries: #{search_results.total} (out of #{search_results.total_before_filtering})"
131
169
  session.prompt_user("Do you want to proceed (y/N):", explanation: str_results, default: "N", timeout: 10) do |res|
132
170
  unless res.upcase.start_with?("Y")
@@ -10,6 +10,7 @@ end
10
10
 
11
11
  require_relative 'ooze_samples/helpers'
12
12
  require_relative 'ooze_samples/ooze_base_case'
13
+ require_relative 'ooze_samples/register_export_case'
13
14
  require_relative 'ooze_samples/ooze_run_base_case'
14
15
  require_relative 'ooze_samples/ooze_update_case'
15
16
  require_relative 'ooze_samples/ooze_from_doc_case'
@@ -3,6 +3,8 @@ ASSETS.cli.config do |config|
3
3
 
4
4
  io = nil
5
5
  rescued = false
6
+ cases_with_input = nil
7
+ cases_with_output = nil
6
8
 
7
9
  # default rescue
8
10
  wf.rescue do |exception, io|
@@ -165,9 +167,16 @@ ASSETS.cli.config do |config|
165
167
  wf.on(:end) do |wf_end, io|
166
168
  get_people = io.options.dig(:people, :get)
167
169
  partial_update = get_people && get_people.dig(:type) == :partial
170
+
168
171
  unless !io.options[:end_get] || io.options[:dry_run] || partial_update
169
- # Prevent getting people when there were no use cases that used them
170
- unless io.people
172
+ people_update_cases = config.usecases.active(io: io).any? do |usecase, data|
173
+ [:transform, :sync].any? {|type| usecase.type == type}
174
+ end
175
+
176
+ if !people_update_cases
177
+ # Prevent getting people when there were no use cases that used them
178
+ io.session.logger.info("Won't be recaching people, as there haven't been any targetted updates")
179
+ elsif !io.people
171
180
  people = io.session.micro.people_cache
172
181
  io = io.new(people: people)
173
182
  end
data/lib/eco/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Eco
2
- VERSION = "2.0.42"
2
+ VERSION = "2.0.46"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eco-helpers
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.42
4
+ version: 2.0.46
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oscar Segura
@@ -116,7 +116,7 @@ dependencies:
116
116
  requirements:
117
117
  - - ">="
118
118
  - !ruby/object:Gem::Version
119
- version: 0.8.3
119
+ version: 0.8.4
120
120
  - - "<"
121
121
  - !ruby/object:Gem::Version
122
122
  version: '0.9'
@@ -126,7 +126,7 @@ dependencies:
126
126
  requirements:
127
127
  - - ">="
128
128
  - !ruby/object:Gem::Version
129
- version: 0.8.3
129
+ version: 0.8.4
130
130
  - - "<"
131
131
  - !ruby/object:Gem::Version
132
132
  version: '0.9'
@@ -136,7 +136,7 @@ dependencies:
136
136
  requirements:
137
137
  - - ">="
138
138
  - !ruby/object:Gem::Version
139
- version: 0.8.19
139
+ version: 0.8.23
140
140
  - - "<"
141
141
  - !ruby/object:Gem::Version
142
142
  version: '0.9'
@@ -146,7 +146,7 @@ dependencies:
146
146
  requirements:
147
147
  - - ">="
148
148
  - !ruby/object:Gem::Version
149
- version: 0.8.19
149
+ version: 0.8.23
150
150
  - - "<"
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0.9'
@@ -564,6 +564,7 @@ files:
564
564
  - lib/eco/api/usecases/ooze_samples/ooze_from_doc_case.rb
565
565
  - lib/eco/api/usecases/ooze_samples/ooze_run_base_case.rb
566
566
  - lib/eco/api/usecases/ooze_samples/ooze_update_case.rb
567
+ - lib/eco/api/usecases/ooze_samples/register_export_case.rb
567
568
  - lib/eco/api/usecases/ooze_samples/register_update_case.rb
568
569
  - lib/eco/api/usecases/ooze_samples/target_oozes_update_case.rb
569
570
  - lib/eco/api/usecases/use_case.rb