eco-helpers 2.0.12 → 2.0.13
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/CHANGELOG.md +8 -75
- data/lib/eco/api/common/loaders/use_case.rb +1 -1
- data/lib/eco/api/session/batch.rb +19 -3
- data/lib/eco/api/usecases.rb +2 -0
- data/lib/eco/api/usecases/default_cases/hris_case.rb +14 -8
- data/lib/eco/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 726f5a5930889b9fd59b4acc4ce7b938e3c6011909c2f5a5bb1a105a36df4d9b
|
|
4
|
+
data.tar.gz: 804bc3ae796491543ec3615e9f11308333e7ea6fc9a10f943778f66922aa4a25
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f2e1c852b4660ae1bdc3e94bab274f3d4b7168c6affef57315b370af102b71cff19cdb0c2de0b59899f82b7f2f8b0478688cf018f3c52f26c1f1d891ed19cd65
|
|
7
|
+
data.tar.gz: 032a93267eb45f7550fbdad7805d0f472a0ea1a98353b089147bd71de785cdeaa4933b233bdd22d4ab69f7a85bfa65ec1f0850fe82e446dcf4d5f503ba1f191b
|
data/CHANGELOG.md
CHANGED
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
|
3
3
|
|
|
4
|
-
## [2.0.
|
|
4
|
+
## [2.0.13] - 2021-03-31
|
|
5
5
|
|
|
6
6
|
### Added
|
|
7
|
+
- Stats on the `Eco::API::Session::Batch`
|
|
8
|
+
- Allow to inherit and re-use the `Eco::API::UseCases::DefaultCase::HrisCase`
|
|
7
9
|
|
|
8
10
|
### Changed
|
|
9
|
-
- `Eco::CLI#run` it does include any defined states on the workflow
|
|
10
11
|
|
|
11
12
|
### Fixed
|
|
13
|
+
- Ensure auto-loading for `Eco::API::UseCases`
|
|
12
14
|
|
|
15
|
+
## [2.0.12] - 2021-03-29
|
|
13
16
|
|
|
14
|
-
|
|
17
|
+
### Changed
|
|
18
|
+
- `Eco::CLI#run` it does include any defined states on the workflow
|
|
15
19
|
|
|
16
|
-
### Added
|
|
17
20
|
|
|
18
|
-
|
|
21
|
+
## [2.0.11] - 2021-03-29
|
|
19
22
|
|
|
20
23
|
### Fixed
|
|
21
24
|
- `Eco::API::Session::Batch:Errors#errors` changed `Array#filter` call to `Array#select` call
|
|
@@ -35,34 +38,24 @@ All notable changes to this project will be documented in this file.
|
|
|
35
38
|
- Ranamed `#defined_attrs` to `#defined_model_attrs`
|
|
36
39
|
- Ranamed `#undefined_attrs` to `#undefined_model_attrs`
|
|
37
40
|
|
|
38
|
-
### Fixed
|
|
39
|
-
|
|
40
41
|
## [2.0.9] - 2021-03-19
|
|
41
42
|
|
|
42
|
-
### Added
|
|
43
43
|
### Changed
|
|
44
44
|
- `Eco::API::Session::Batch:Errors#person_ref` moved to the public method
|
|
45
45
|
|
|
46
|
-
### Fixed
|
|
47
|
-
|
|
48
46
|
## [2.0.8] - 2021-03-09
|
|
49
47
|
|
|
50
|
-
### Added
|
|
51
|
-
### Changed
|
|
52
48
|
### Fixed
|
|
53
49
|
- `Ecoportal::API::V1::Person#identity` adjust behavior
|
|
54
50
|
|
|
55
51
|
## [2.0.7] - 2021-03-09
|
|
56
52
|
|
|
57
|
-
### Added
|
|
58
|
-
### Changed
|
|
59
53
|
### Fixed
|
|
60
54
|
- `Eco::API::Session::Batch::JobsGroups` and `Eco::API::Session::Batch::Jobs`: when new `Batch::Job`s are creating during launch, they remained unlaunched
|
|
61
55
|
- this fix makes `#launch` method to iterate until there are no pending
|
|
62
56
|
|
|
63
57
|
## [2.0.6] - 2021-03-08
|
|
64
58
|
|
|
65
|
-
### Added
|
|
66
59
|
### Changed
|
|
67
60
|
- `Eco::API::Session::Batch:Errors` moved some methods to be private
|
|
68
61
|
### Fixed
|
|
@@ -70,46 +63,33 @@ All notable changes to this project will be documented in this file.
|
|
|
70
63
|
|
|
71
64
|
## [2.0.5] - 2021-02-24
|
|
72
65
|
|
|
73
|
-
### Added
|
|
74
|
-
### Changed
|
|
75
66
|
### Fixed
|
|
76
67
|
- `Eco::API::Common::People::PersonParser#symbol_keys` to use `Array#select`
|
|
77
68
|
- as `Array#filter` was introduced in ruby `2.5.5`
|
|
78
69
|
|
|
79
70
|
## [2.0.4] - 2021-02-23
|
|
80
71
|
|
|
81
|
-
### Added
|
|
82
72
|
### Changed
|
|
83
73
|
- `Eco::API::Common::People::PersonParser#defined_attrs` to include virtual attributes
|
|
84
74
|
|
|
85
|
-
### Fixed
|
|
86
|
-
|
|
87
75
|
## [2.0.3] - 2021-02-23
|
|
88
76
|
|
|
89
77
|
### Added
|
|
90
78
|
- `Eco::API::UseCases::OozeSamples::OozeUpdateCase`: added integration to update page instances (non-templates)
|
|
91
79
|
|
|
92
|
-
### Changed
|
|
93
80
|
### Fixed
|
|
94
81
|
- `Eco::API::Policies::DefaultPolicies::UserAccess` complete default policy code.
|
|
95
82
|
|
|
96
83
|
## [2.0.2] - 2021-02-22
|
|
97
84
|
|
|
98
|
-
### Added
|
|
99
85
|
### Changed
|
|
100
86
|
- upgraded dependencies with `ecoportal-api`
|
|
101
87
|
|
|
102
|
-
### Fixed
|
|
103
|
-
|
|
104
|
-
|
|
105
88
|
## [2.0.1] - 2021-02-22
|
|
106
89
|
|
|
107
|
-
### Added
|
|
108
90
|
### Changed
|
|
109
91
|
- upgraded dependencies with `ecoportal-api-oozes` to `ecoportal-api-v2`
|
|
110
92
|
|
|
111
|
-
### Fixed
|
|
112
|
-
|
|
113
93
|
## [1.5.15] - 2021-02-17
|
|
114
94
|
|
|
115
95
|
### Added
|
|
@@ -123,7 +103,6 @@ All notable changes to this project will be documented in this file.
|
|
|
123
103
|
- `Eco::API::MicroCases#people_search`
|
|
124
104
|
- `Eco::API::MicroCases#refresh`
|
|
125
105
|
|
|
126
|
-
### Changed
|
|
127
106
|
### Fixed
|
|
128
107
|
- `Eco::API::Policies::DefaultPolicies::UserAccess` typos in default api policy
|
|
129
108
|
|
|
@@ -145,11 +124,8 @@ All notable changes to this project will be documented in this file.
|
|
|
145
124
|
- `Eco::API::Common::People::PersonEntry` add error log when wrong email error is detected
|
|
146
125
|
- previously it would have crashed
|
|
147
126
|
|
|
148
|
-
### Fixed
|
|
149
|
-
|
|
150
127
|
## [1.5.13] - 2021-02-01
|
|
151
128
|
|
|
152
|
-
### Added
|
|
153
129
|
### Changed
|
|
154
130
|
- upgraded dependency with `ecoportal-api-oozes`
|
|
155
131
|
|
|
@@ -165,23 +141,16 @@ All notable changes to this project will be documented in this file.
|
|
|
165
141
|
### Changed
|
|
166
142
|
- upgraded `ecoportal-api` dependency
|
|
167
143
|
|
|
168
|
-
### Fixed
|
|
169
|
-
|
|
170
|
-
|
|
171
144
|
## [1.5.11] - 2021-01-25
|
|
172
145
|
|
|
173
146
|
### Added
|
|
174
147
|
- `Eco::API::Organization::TagTree#subtag?` to check if the tag is in any subtree.
|
|
175
148
|
|
|
176
|
-
### Changed
|
|
177
|
-
|
|
178
149
|
### Fixed
|
|
179
150
|
- `Eco::API::MicroCases#set_supervisor` shouldn't set it if the entry does not have it.
|
|
180
151
|
|
|
181
152
|
## [1.5.10] - 2021-01-19
|
|
182
153
|
|
|
183
|
-
### Added
|
|
184
|
-
### Changed
|
|
185
154
|
### Fixed
|
|
186
155
|
- `Eco::API::Session::Batch::Errors#print` show the row number of the input data.
|
|
187
156
|
|
|
@@ -190,14 +159,8 @@ All notable changes to this project will be documented in this file.
|
|
|
190
159
|
### Added
|
|
191
160
|
- `Eco::API::Organization::TagTree#subtags` to get all the tags but those of the highest level.
|
|
192
161
|
|
|
193
|
-
### Changed
|
|
194
|
-
### Fixed
|
|
195
|
-
|
|
196
|
-
|
|
197
162
|
## [1.5.8] - 2021-01-05
|
|
198
163
|
|
|
199
|
-
### Added
|
|
200
|
-
### Changed
|
|
201
164
|
### Fixed
|
|
202
165
|
- `Eco::API::Session::Batch::Jobs#job` shouldn't be calling the post-launch callback function on creation.
|
|
203
166
|
- `Eco::API::Session#new_job` should include a `&block` parameter.
|
|
@@ -205,15 +168,11 @@ All notable changes to this project will be documented in this file.
|
|
|
205
168
|
|
|
206
169
|
## [1.5.7] - 2020-12-17
|
|
207
170
|
|
|
208
|
-
### Added
|
|
209
|
-
### Changed
|
|
210
171
|
### Fixed
|
|
211
172
|
- `Eco::API::Sesssion#parse_attribute` was not using phase argument
|
|
212
173
|
|
|
213
174
|
## [1.5.6] - 2020-12-04
|
|
214
175
|
|
|
215
|
-
### Added
|
|
216
|
-
### Changed
|
|
217
176
|
### Fixed
|
|
218
177
|
- `Eco::API::UseCases::DefaultCases::RestoreDBCase` fixed typo and slightly improved
|
|
219
178
|
- fixed some back-end errors when chaining usecases
|
|
@@ -221,8 +180,6 @@ All notable changes to this project will be documented in this file.
|
|
|
221
180
|
|
|
222
181
|
## [1.5.5] - 2020-12-03
|
|
223
182
|
|
|
224
|
-
### Added
|
|
225
|
-
### Changed
|
|
226
183
|
### Fixed
|
|
227
184
|
- rubies previous to `2.5` do not have `yield_self`
|
|
228
185
|
|
|
@@ -230,14 +187,11 @@ All notable changes to this project will be documented in this file.
|
|
|
230
187
|
|
|
231
188
|
### Added
|
|
232
189
|
- update `ecoportal-api` dependency
|
|
233
|
-
### Changed
|
|
234
190
|
### Fixed
|
|
235
191
|
- `Eco::API::MicroCases#people_refresh` typo
|
|
236
192
|
|
|
237
193
|
## [1.5.3] - 2020-11-30
|
|
238
194
|
|
|
239
|
-
### Added
|
|
240
|
-
### Changed
|
|
241
195
|
### Fixed
|
|
242
196
|
- `Eco::API::Session::Batch::RequestStats#blanked_value?` better blank detection
|
|
243
197
|
- `Eco::API::MicroCases#with_each_starter` rectified typo
|
|
@@ -378,14 +332,11 @@ All notable changes to this project will be documented in this file.
|
|
|
378
332
|
|
|
379
333
|
## [1.4.2] - 2020-07-23
|
|
380
334
|
|
|
381
|
-
### Added
|
|
382
|
-
### Changed
|
|
383
335
|
### Fixed
|
|
384
336
|
- preserve backtrace on logging
|
|
385
337
|
|
|
386
338
|
## [1.4.0] - 2020-07-14
|
|
387
339
|
|
|
388
|
-
### Added
|
|
389
340
|
### Changed
|
|
390
341
|
- change abilities to align with ecoPortal release `1.5.0`
|
|
391
342
|
- remove some patches on `ecoportal-api`
|
|
@@ -395,22 +346,17 @@ All notable changes to this project will be documented in this file.
|
|
|
395
346
|
|
|
396
347
|
## [1.3.19] - 2020-07-23
|
|
397
348
|
|
|
398
|
-
### Added
|
|
399
|
-
### Changed
|
|
400
349
|
### Fixed
|
|
401
350
|
- preserve backtrace on logging
|
|
402
351
|
|
|
403
352
|
## [1.3.18] - 2020-07-08
|
|
404
353
|
|
|
405
|
-
### Added
|
|
406
|
-
### Changed
|
|
407
354
|
### Fixed
|
|
408
355
|
- the `update` case was missing the code to use the `default_usergroup`
|
|
409
356
|
|
|
410
357
|
|
|
411
358
|
## [1.3.17] - 2020-07-06
|
|
412
359
|
|
|
413
|
-
### Added
|
|
414
360
|
### Changed
|
|
415
361
|
- the `hris` case should not only include as `leavers` those that have account, but anyone that leaves
|
|
416
362
|
* as we could have active people with no account
|
|
@@ -433,7 +379,6 @@ All notable changes to this project will be documented in this file.
|
|
|
433
379
|
### Added
|
|
434
380
|
- default usecase to export to `csv` (`-detailed`) now includes `"Supervisor Name"` column
|
|
435
381
|
### Changed
|
|
436
|
-
### Fixed
|
|
437
382
|
|
|
438
383
|
## [1.3.14] - 2020-06-10
|
|
439
384
|
|
|
@@ -441,33 +386,24 @@ All notable changes to this project will be documented in this file.
|
|
|
441
386
|
- `Eco::API::Common::People::SupervisorHelpers` now has its methods as class methods
|
|
442
387
|
### Changed
|
|
443
388
|
- upgraded `ecoportal-api` gem dependency to minimum version `0.5.6`
|
|
444
|
-
### Fixed
|
|
445
389
|
|
|
446
390
|
|
|
447
391
|
## [1.3.13] - 2020-05-29
|
|
448
392
|
|
|
449
|
-
### Added
|
|
450
|
-
### Changed
|
|
451
393
|
### Fixed
|
|
452
394
|
- `Eco::API::Organization::TagTree#tag?` to accept `nil` by returning `false`
|
|
453
395
|
- `Eco::API::Common::People::DefaultParsers::DateParser` will parse to `Date` class
|
|
454
396
|
* it was parsing to `Time` class, while the native gem `ecoportal-api` parses as `Date` ([reference](https://gitlab.com/ecoPortal/ecoportal-api/-/blob/master/lib/ecoportal/api/v1/schema_field.rb))
|
|
455
397
|
## [1.3.12] - 2020-05-19
|
|
456
398
|
|
|
457
|
-
### Added
|
|
458
399
|
### Changed
|
|
459
400
|
- stop using `email` as `external_id` on `People#person` & `People#find`
|
|
460
401
|
* this should result in more accurate searches when using `:strict` options
|
|
461
|
-
### Fixed
|
|
462
|
-
|
|
463
402
|
|
|
464
403
|
## [1.3.11] - 2020-05-12
|
|
465
404
|
|
|
466
|
-
### Added
|
|
467
405
|
### Changed
|
|
468
406
|
- remove popping up comments on `Eco::API::Organization::PolicyGroups#`
|
|
469
|
-
### Fixed
|
|
470
|
-
|
|
471
407
|
|
|
472
408
|
## [1.3.10] - 2020-05-12
|
|
473
409
|
|
|
@@ -476,14 +412,11 @@ All notable changes to this project will be documented in this file.
|
|
|
476
412
|
- `config.people.default_usergroup`, when defined, will have effect on usecases: `update` (this case was missing the change)
|
|
477
413
|
* on account creation, if the input file did not specify `policy_group_ids`
|
|
478
414
|
|
|
479
|
-
### Changed
|
|
480
415
|
### Fixed
|
|
481
416
|
- `upsert`, `hris` and `create` usecases: fixed condition for use of default_usergroup
|
|
482
417
|
|
|
483
418
|
## [1.3.9] - 2020-05-12
|
|
484
419
|
|
|
485
|
-
### Added
|
|
486
|
-
### Changed
|
|
487
420
|
### Fixed
|
|
488
421
|
|
|
489
422
|
- `usecase` callback was not receiving `usecase` paramater
|
|
@@ -8,7 +8,7 @@ module Eco
|
|
|
8
8
|
# @return [Symbol] the `type` of usecase (i.e. `:sync`, `:transform`, `:import`, `:other`)
|
|
9
9
|
def type(value = nil)
|
|
10
10
|
unless value
|
|
11
|
-
return @type || raise("You should specify a type of case [:sync, :transform, :import, :other] for #{self
|
|
11
|
+
return @type || raise("You should specify a type of case [:sync, :transform, :import, :other] for #{self}")
|
|
12
12
|
end
|
|
13
13
|
@type = value
|
|
14
14
|
end
|
|
@@ -105,10 +105,15 @@ module Eco
|
|
|
105
105
|
iterations = (data.length.to_f / per_page).ceil
|
|
106
106
|
|
|
107
107
|
Eco::API::Session::Batch::Status.new(enviro, queue: data, method: method).tap do |status|
|
|
108
|
+
start_time = Time.now
|
|
109
|
+
start_slice = Time.now; slice = []
|
|
108
110
|
data.each_slice(per_page) do |slice|
|
|
109
|
-
msg
|
|
111
|
+
msg = "starting batch '#{method}' iteration #{iteration}/#{iterations},"
|
|
112
|
+
msg += " with #{slice.length} entries of #{data.length} -- #{done} done"
|
|
113
|
+
msg += " (last: #{str_stats(start_slice, slice.length)}; total: #{str_stats(start_time, done)})"
|
|
110
114
|
logger.info(msg) unless silent
|
|
111
115
|
|
|
116
|
+
start_slice = Time.now
|
|
112
117
|
people_api.batch do |batch|
|
|
113
118
|
slice.each do |person|
|
|
114
119
|
batch.public_send(method, person) do |response|
|
|
@@ -118,12 +123,23 @@ module Eco
|
|
|
118
123
|
end
|
|
119
124
|
end # next batch
|
|
120
125
|
|
|
121
|
-
iteration
|
|
122
|
-
done
|
|
126
|
+
iteration += 1
|
|
127
|
+
done += slice.length
|
|
123
128
|
end # next slice
|
|
124
129
|
end
|
|
125
130
|
end
|
|
126
131
|
|
|
132
|
+
def str_stats(start, count)
|
|
133
|
+
now = Time.now
|
|
134
|
+
secs = (now - start).round(3)
|
|
135
|
+
if secs > 0.0
|
|
136
|
+
per_sec = (count.to_f / secs).round(2)
|
|
137
|
+
"#{secs}s -> #{per_sec} people/s"
|
|
138
|
+
else
|
|
139
|
+
" -- "
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
|
|
127
143
|
end
|
|
128
144
|
end
|
|
129
145
|
end
|
data/lib/eco/api/usecases.rb
CHANGED
|
@@ -30,6 +30,7 @@ module Eco
|
|
|
30
30
|
@usecases = {}
|
|
31
31
|
@cache_init = false
|
|
32
32
|
@cases_by_name = {}
|
|
33
|
+
init_caches
|
|
33
34
|
end
|
|
34
35
|
|
|
35
36
|
def length
|
|
@@ -79,6 +80,7 @@ module Eco
|
|
|
79
80
|
|
|
80
81
|
# @return [Eco::API::UseCases] a copy of instance object of `self`.
|
|
81
82
|
def dup
|
|
83
|
+
init_caches
|
|
82
84
|
self.class.new.merge(self)
|
|
83
85
|
end
|
|
84
86
|
|
|
@@ -2,18 +2,17 @@ class Eco::API::UseCases::DefaultCases::HrisCase < Eco::API::Common::Loaders::Us
|
|
|
2
2
|
name "hris"
|
|
3
3
|
type :sync
|
|
4
4
|
|
|
5
|
+
attr_reader :creation, :update, :supers, :leavers
|
|
6
|
+
|
|
5
7
|
def main(entries, people, session, options, usecase)
|
|
6
8
|
micro = session.micro
|
|
7
|
-
creation = session.new_job("main", "create", :create, usecase)
|
|
8
|
-
update = session.new_job("main", "update", :update, usecase)
|
|
9
|
-
supers = session.new_job("post", "supers", :update, usecase, :core)
|
|
10
|
-
leavers = session.new_job("post", "leavers", :update, usecase, :account)
|
|
9
|
+
@creation = session.new_job("main", "create", :create, usecase)
|
|
10
|
+
@update = session.new_job("main", "update", :update, usecase)
|
|
11
|
+
@supers = session.new_job("post", "supers", :update, usecase, :core)
|
|
12
|
+
@leavers = session.new_job("post", "leavers", :update, usecase, :account)
|
|
11
13
|
|
|
12
14
|
micro.with_each_leaver(entries, people, options) do |person|
|
|
13
|
-
leavers.add(person)
|
|
14
|
-
person.supervisor_id = nil
|
|
15
|
-
person.account = nil if person.account
|
|
16
|
-
end
|
|
15
|
+
leavers.add(person, &method(:leavers_callback))
|
|
17
16
|
end
|
|
18
17
|
|
|
19
18
|
micro.with_each(entries, people, options) do |entry, person|
|
|
@@ -24,4 +23,11 @@ class Eco::API::UseCases::DefaultCases::HrisCase < Eco::API::Common::Loaders::Us
|
|
|
24
23
|
end
|
|
25
24
|
end
|
|
26
25
|
|
|
26
|
+
private
|
|
27
|
+
|
|
28
|
+
def leavers_callback(person)
|
|
29
|
+
person.supervisor_id = nil
|
|
30
|
+
person.account = nil if person.account
|
|
31
|
+
end
|
|
32
|
+
|
|
27
33
|
end
|
data/lib/eco/version.rb
CHANGED