eco-helpers 2.7.24 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|