eco-helpers 2.7.24 → 3.0.0
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 +4 -4
- data/.rubocop.yml +1 -1
- data/.ruby-version +1 -0
- data/CHANGELOG.md +16 -1
- data/eco-helpers.gemspec +12 -11
- data/lib/eco/api/common/session/base_session.rb +1 -0
- data/lib/eco/api/common/session/helpers/prompt_user.rb +3 -1
- data/lib/eco/api/common/session/helpers.rb +0 -9
- data/lib/eco/api/common/session/logger.rb +2 -0
- data/lib/eco/api/microcases/account_excluded.rb +2 -0
- data/lib/eco/api/microcases/append_usergroups.rb +4 -6
- data/lib/eco/api/microcases/core_excluded.rb +2 -1
- data/lib/eco/api/microcases/fix_default_group.rb +13 -14
- data/lib/eco/api/microcases/people_cache.rb +10 -3
- data/lib/eco/api/microcases/people_load.rb +21 -7
- data/lib/eco/api/microcases/people_refresh.rb +11 -3
- data/lib/eco/api/microcases/people_search.rb +24 -10
- data/lib/eco/api/microcases/person_update.rb +8 -4
- data/lib/eco/api/microcases/preserve_default_tag.rb +9 -9
- data/lib/eco/api/microcases/preserve_policy_groups.rb +14 -14
- data/lib/eco/api/microcases/refresh_default_tag.rb +11 -12
- data/lib/eco/api/microcases/s3upload_targets.rb +3 -2
- data/lib/eco/api/microcases/set_account.rb +6 -7
- data/lib/eco/api/microcases/strict_search.rb +0 -1
- data/lib/eco/api/microcases/take_email_from_account.rb +46 -27
- data/lib/eco/api/microcases/with_each.rb +15 -5
- data/lib/eco/api/microcases/with_each_leaver.rb +1 -1
- data/lib/eco/api/microcases/with_each_present.rb +6 -2
- data/lib/eco/api/microcases/with_each_starter.rb +7 -3
- data/lib/eco/api/microcases/with_each_subordinate.rb +0 -1
- data/lib/eco/api/microcases/with_supervisor.rb +0 -1
- data/lib/eco/api/microcases.rb +0 -2
- data/lib/eco/api/organization/login_providers.rb +23 -5
- data/lib/eco/api/session.rb +1 -1
- data/lib/eco/cli_default/input.rb +17 -14
- data/lib/eco/cli_default/options.rb +41 -23
- data/lib/eco/cli_default/people.rb +50 -12
- data/lib/eco/cli_default/people_filters.rb +1 -1
- data/lib/eco/cli_default/workflow.rb +4 -0
- data/lib/eco/data/files/helpers.rb +1 -0
- data/lib/eco/version.rb +1 -1
- data/lib/eco-helpers.rb +4 -0
- metadata +18 -60
- /data/{.markdownlint.jsonc → .markdownlint.json} +0 -0
@@ -1,31 +1,69 @@
|
|
1
|
+
MAX_GET_PARTIAL = 12_000
|
2
|
+
|
1
3
|
ASSETS.cli.config do |cnf|
|
2
4
|
cnf.people do |input, session, options|
|
3
|
-
get
|
4
|
-
|
5
|
-
|
5
|
+
get = options.dig(:people, :get)
|
6
|
+
get = {} if get.nil?
|
7
|
+
|
8
|
+
from_remote = get && get[:from] == :remote
|
9
|
+
from_local = get && get[:from] == :local
|
10
|
+
|
11
|
+
get_full = from_remote && get[:type] == :full
|
12
|
+
get_partial = from_remote && get[:type] == :partial
|
13
|
+
get_by_file = from_local && get[:type] == :file
|
14
|
+
|
15
|
+
# -get-partial: validate input present and under max
|
16
|
+
if get_partial
|
17
|
+
msg = "To use -get-partial (partial updates), you need to use -entries-from"
|
18
|
+
raise msg unless input.is_a?(Enumerable)
|
19
|
+
|
20
|
+
if input.count > MAX_GET_PARTIAL
|
21
|
+
get_full = true
|
22
|
+
get_partial = false
|
23
|
+
|
24
|
+
msg = "(Optimization) "
|
25
|
+
msg << "Switching from partial to full people download. "
|
26
|
+
msg << "Input (#{input.count}) surpases MAX_GET_PARTIAL (#{MAX_GET_PARTIAL}) entries."
|
27
|
+
session.logger.info(msg)
|
28
|
+
|
29
|
+
options.deep_merge!(people: {
|
30
|
+
get: {
|
31
|
+
from: :remote,
|
32
|
+
type: :full
|
33
|
+
}
|
34
|
+
})
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
if get == false
|
6
39
|
Eco::API::Organization::People.new([])
|
7
|
-
|
40
|
+
elsif get_full
|
8
41
|
# -get-people
|
9
42
|
session.micro.people_cache
|
10
|
-
|
43
|
+
elsif get_partial
|
11
44
|
# -get-partial
|
12
|
-
unless (input && input.is_a?(Enumerable))
|
13
|
-
raise "To use -get-partial (partial updates), you need to use -entries-from"
|
14
|
-
end
|
15
45
|
session.micro.people_search(input, options: options)
|
16
|
-
|
46
|
+
elsif get_by_file
|
17
47
|
# -people-from-backup
|
18
48
|
session.micro.people_load(get[:file], modifier: :file)
|
19
49
|
#people = JSON.parse(File.read(get[:file]))
|
20
50
|
#Eco::API::Organization::People.new(people)
|
21
51
|
else
|
22
52
|
options.deep_merge!(people: {
|
23
|
-
get: {
|
53
|
+
get: {
|
54
|
+
from: :local,
|
55
|
+
type: :full
|
56
|
+
}
|
24
57
|
})
|
25
|
-
|
58
|
+
|
59
|
+
people = session.micro.people_load(modifier: %i[newest save])
|
60
|
+
|
26
61
|
if people.empty?
|
27
62
|
options.deep_merge!(people: {
|
28
|
-
get: {
|
63
|
+
get: {
|
64
|
+
from: :remote,
|
65
|
+
type: :full
|
66
|
+
}
|
29
67
|
})
|
30
68
|
people = session.micro.people_cache
|
31
69
|
end
|
@@ -94,7 +94,7 @@ ASSETS.cli.config do |cnf|
|
|
94
94
|
end
|
95
95
|
|
96
96
|
options.deep_merge!(people: {filter: {details: {schema_id: sch_id}}})
|
97
|
-
session.logger.info("Filtering people
|
97
|
+
session.logger.info("Filtering people records with schema #{session.schemas.to_name(sch_id)}")
|
98
98
|
|
99
99
|
people.select do |person|
|
100
100
|
person.details && (person.details.schema_id == sch_id)
|
@@ -4,6 +4,7 @@ ASSETS.cli do |cli| # rubocop:disable Metrics/BlockLength
|
|
4
4
|
# default rescue
|
5
5
|
wf.rescue do |err, io|
|
6
6
|
next io if rescued
|
7
|
+
|
7
8
|
rescued = true
|
8
9
|
log(:debug) { err.patch_full_message }
|
9
10
|
wf.run(:close, io: io)
|
@@ -47,11 +48,13 @@ ASSETS.cli do |cli| # rubocop:disable Metrics/BlockLength
|
|
47
48
|
io.class.people_required?(usecase.type)
|
48
49
|
end
|
49
50
|
next if cases_with_people.empty? && !options.dig(:people, :get)
|
51
|
+
|
50
52
|
io.new(people: cli.config.people(io: io))
|
51
53
|
end
|
52
54
|
|
53
55
|
wf_peo.on(:filter) do |_wf_pf, io|
|
54
56
|
next unless people && !people.empty?
|
57
|
+
|
55
58
|
io.new(people: cli.config.people_filters.process(io: io))
|
56
59
|
end
|
57
60
|
end
|
@@ -61,6 +64,7 @@ ASSETS.cli do |cli| # rubocop:disable Metrics/BlockLength
|
|
61
64
|
# save partial entries -> should be native to session.workflow
|
62
65
|
get_people = options.dig(:people, :get)
|
63
66
|
partial_update = get_people && get_people[:type] == :partial
|
67
|
+
|
64
68
|
if !options[:dry_run] && partial_update
|
65
69
|
partial_file = session.config.people.partial_cache
|
66
70
|
session.file_manager.save_json(io.people, partial_file, :timestamp)
|
data/lib/eco/version.rb
CHANGED
data/lib/eco-helpers.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# rubocop:disable Naming/FileName
|
1
2
|
require 'csv'
|
2
3
|
require 'json'
|
3
4
|
require 'pp'
|
@@ -7,6 +8,7 @@ require 'dotenv/load'
|
|
7
8
|
module Eco
|
8
9
|
end
|
9
10
|
|
11
|
+
require_relative 'eco/version'
|
10
12
|
require_relative 'eco/language'
|
11
13
|
require_relative 'eco/common'
|
12
14
|
require_relative 'eco/data'
|
@@ -14,3 +16,5 @@ require_relative 'eco/csv'
|
|
14
16
|
require_relative 'eco/api'
|
15
17
|
require_relative 'eco/cli'
|
16
18
|
require_relative 'eco/assets'
|
19
|
+
|
20
|
+
# rubocop:enable Naming/FileName
|
metadata
CHANGED
@@ -1,35 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eco-helpers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Oscar Segura
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-08-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: bundler
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 2.4.12
|
20
|
-
- - "<"
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: '3'
|
23
|
-
type: :development
|
24
|
-
prerelease: false
|
25
|
-
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
requirements:
|
27
|
-
- - ">="
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: 2.4.12
|
30
|
-
- - "<"
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: '3'
|
33
13
|
- !ruby/object:Gem::Dependency
|
34
14
|
name: rake
|
35
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -236,82 +216,58 @@ dependencies:
|
|
236
216
|
name: dotenv
|
237
217
|
requirement: !ruby/object:Gem::Requirement
|
238
218
|
requirements:
|
239
|
-
- - "
|
240
|
-
- !ruby/object:Gem::Version
|
241
|
-
version: 2.8.1
|
242
|
-
- - "<"
|
219
|
+
- - "~>"
|
243
220
|
- !ruby/object:Gem::Version
|
244
221
|
version: '3'
|
245
222
|
type: :runtime
|
246
223
|
prerelease: false
|
247
224
|
version_requirements: !ruby/object:Gem::Requirement
|
248
225
|
requirements:
|
249
|
-
- - "
|
250
|
-
- !ruby/object:Gem::Version
|
251
|
-
version: 2.8.1
|
252
|
-
- - "<"
|
226
|
+
- - "~>"
|
253
227
|
- !ruby/object:Gem::Version
|
254
228
|
version: '3'
|
255
229
|
- !ruby/object:Gem::Dependency
|
256
230
|
name: ecoportal-api
|
257
231
|
requirement: !ruby/object:Gem::Requirement
|
258
232
|
requirements:
|
259
|
-
- - "
|
260
|
-
- !ruby/object:Gem::Version
|
261
|
-
version: 0.9.8
|
262
|
-
- - "<"
|
233
|
+
- - "~>"
|
263
234
|
- !ruby/object:Gem::Version
|
264
235
|
version: '0.10'
|
265
236
|
type: :runtime
|
266
237
|
prerelease: false
|
267
238
|
version_requirements: !ruby/object:Gem::Requirement
|
268
239
|
requirements:
|
269
|
-
- - "
|
270
|
-
- !ruby/object:Gem::Version
|
271
|
-
version: 0.9.8
|
272
|
-
- - "<"
|
240
|
+
- - "~>"
|
273
241
|
- !ruby/object:Gem::Version
|
274
242
|
version: '0.10'
|
275
243
|
- !ruby/object:Gem::Dependency
|
276
244
|
name: ecoportal-api-graphql
|
277
245
|
requirement: !ruby/object:Gem::Requirement
|
278
246
|
requirements:
|
279
|
-
- - "
|
280
|
-
- !ruby/object:Gem::Version
|
281
|
-
version: 0.3.18
|
282
|
-
- - "<"
|
247
|
+
- - "~>"
|
283
248
|
- !ruby/object:Gem::Version
|
284
249
|
version: '0.4'
|
285
250
|
type: :runtime
|
286
251
|
prerelease: false
|
287
252
|
version_requirements: !ruby/object:Gem::Requirement
|
288
253
|
requirements:
|
289
|
-
- - "
|
290
|
-
- !ruby/object:Gem::Version
|
291
|
-
version: 0.3.18
|
292
|
-
- - "<"
|
254
|
+
- - "~>"
|
293
255
|
- !ruby/object:Gem::Version
|
294
256
|
version: '0.4'
|
295
257
|
- !ruby/object:Gem::Dependency
|
296
258
|
name: ecoportal-api-v2
|
297
259
|
requirement: !ruby/object:Gem::Requirement
|
298
260
|
requirements:
|
299
|
-
- - "
|
300
|
-
- !ruby/object:Gem::Version
|
301
|
-
version: 1.1.8
|
302
|
-
- - "<"
|
261
|
+
- - "~>"
|
303
262
|
- !ruby/object:Gem::Version
|
304
|
-
version: '
|
263
|
+
version: '2.0'
|
305
264
|
type: :runtime
|
306
265
|
prerelease: false
|
307
266
|
version_requirements: !ruby/object:Gem::Requirement
|
308
267
|
requirements:
|
309
|
-
- - "
|
310
|
-
- !ruby/object:Gem::Version
|
311
|
-
version: 1.1.8
|
312
|
-
- - "<"
|
268
|
+
- - "~>"
|
313
269
|
- !ruby/object:Gem::Version
|
314
|
-
version: '
|
270
|
+
version: '2.0'
|
315
271
|
- !ruby/object:Gem::Dependency
|
316
272
|
name: ed25519
|
317
273
|
requirement: !ruby/object:Gem::Requirement
|
@@ -534,9 +490,10 @@ extensions: []
|
|
534
490
|
extra_rdoc_files: []
|
535
491
|
files:
|
536
492
|
- ".gitignore"
|
537
|
-
- ".markdownlint.
|
493
|
+
- ".markdownlint.json"
|
538
494
|
- ".rspec"
|
539
495
|
- ".rubocop.yml"
|
496
|
+
- ".ruby-version"
|
540
497
|
- ".yardopts"
|
541
498
|
- CHANGELOG.md
|
542
499
|
- Gemfile
|
@@ -923,7 +880,8 @@ files:
|
|
923
880
|
homepage: https://www.ecoportal.com
|
924
881
|
licenses:
|
925
882
|
- MIT
|
926
|
-
metadata:
|
883
|
+
metadata:
|
884
|
+
rubygems_mfa_required: 'true'
|
927
885
|
post_install_message:
|
928
886
|
rdoc_options: []
|
929
887
|
require_paths:
|
@@ -932,14 +890,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
932
890
|
requirements:
|
933
891
|
- - ">="
|
934
892
|
- !ruby/object:Gem::Version
|
935
|
-
version: 2.
|
893
|
+
version: 3.2.2
|
936
894
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
937
895
|
requirements:
|
938
896
|
- - ">="
|
939
897
|
- !ruby/object:Gem::Version
|
940
898
|
version: '0'
|
941
899
|
requirements: []
|
942
|
-
rubygems_version: 3.
|
900
|
+
rubygems_version: 3.5.6
|
943
901
|
signing_key:
|
944
902
|
specification_version: 4
|
945
903
|
summary: eco-helpers to manage people api cases
|
File without changes
|