eco-helpers 2.7.13 → 2.7.15

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.
data/CHANGELOG.md CHANGED
@@ -1,1968 +1,2264 @@
1
1
  # Change Log
2
+
2
3
  All notable changes to this project will be documented in this file.
3
4
 
4
- ## [2.7.13] - 2024-06-13
5
+ ## [2.7.15] - 2024-06-18
5
6
 
6
7
  ### Added
7
- - Case `-split-csv`
8
- - Case `-remap-tags` on people case
9
8
 
10
9
  ### Changed
11
- - `close_handling_tags_remap_csv` will display table on dry-run too
12
- - See `Eco::API::UseCases::GraphQL::Samples::Location::Command::TrackChangedIds`
13
10
 
14
11
  ### Fixed
15
12
 
13
+ - `Eco::API::Common::People::EntryFactor` super must be called before
14
+
15
+ ## [2.7.14] - 2024-06-13
16
+
17
+ ### Fixed
18
+
19
+ - `update_tags_remap_table` to build table on **dry-run** too
20
+ - See `Eco::API::UseCases::GraphQL::Samples::Location::Command::TrackChangedIds`
21
+
22
+ ## [2.7.13] - 2024-06-13
23
+
24
+ ### Added
25
+
26
+ - Case `-split-csv`
27
+ - Case `-remap-tags` on people case
28
+
29
+ ### Changed
30
+
31
+ - `close_handling_tags_remap_csv` will display table on dry-run too
32
+ - See `Eco::API::UseCases::GraphQL::Samples::Location::Command::TrackChangedIds`
33
+
16
34
  ## [2.7.12] - 2024-05-30
17
35
 
18
36
  ### Changed
19
- - Decouple `Eco::API::UseCases::Default::People` namespace
37
+
38
+ - Decouple `Eco::API::UseCases::Default::People` namespace
20
39
 
21
40
  ## [2.7.11] - 2024-05-27
22
41
 
23
- ### Changed\
24
- - `Eco::API::Common::Session::SFTP#download`
25
- - It now returns the local filename(s) of the downloaded files.
26
- - `Eco::API::UseCases::GraphQL::Utils#sftp_download_files`
27
- - It now returns the local filename(s) of the downloaded files.
42
+ ### Changed
43
+
44
+ - `Eco::API::Common::Session::SFTP#download`
45
+ - It now returns the local filename(s) of the downloaded files.
46
+ - `Eco::API::UseCases::GraphQL::Utils#sftp_download_files`
47
+ - It now returns the local filename(s) of the downloaded files.
28
48
 
29
49
  ## [2.7.10] - 2024-05-20
30
50
 
31
51
  ### Changed
32
- - Temporarily silent warnings on tracking id changes (apparently the tracking locations tree is not up to date with latest version and gives false warnings)
33
- - Upgrade SFTP access
52
+
53
+ - Temporarily silent warnings on tracking id changes (apparently the tracking locations tree is not up to date with latest version and gives false warnings)
54
+ - Upgrade SFTP access
34
55
 
35
56
  ### Fixed
36
- - Remove enviro from tagtree download
57
+
58
+ - Remove enviro from tagtree download
37
59
 
38
60
  ## [2.7.9] - 2024-05-16
39
61
 
40
62
  ### Fixed
41
- - `Eco::Data::Locations::NodeDiff::NodesDiff#unarchive`
42
- - It must include archived nodes that will receive new children
63
+
64
+ - `Eco::Data::Locations::NodeDiff::NodesDiff#unarchive`
65
+ - It must include archived nodes that will receive new children
43
66
 
44
67
  ## [2.7.8] - 2024-05-16
45
68
 
46
69
  ### Added
47
- - `Eco::API::UseCases::GraphQL::Helpers::Location::Command:Result`
48
- - Feedback original command.
70
+
71
+ - `Eco::API::UseCases::GraphQL::Helpers::Location::Command:Result`
72
+ - Feedback original command.
49
73
 
50
74
  ### Changed
51
- - upgraded `ecoportal-api-graphql` gem
52
- - able to skip email via options (`-no-email`)
75
+
76
+ - upgraded `ecoportal-api-graphql` gem
77
+ - able to skip email via options (`-no-email`)
53
78
 
54
79
  ## [2.7.8] - 2024-05-xx
55
80
 
56
81
  ### Added
57
- - `Eco::API::UseCases::GraphQL::Helpers::Location::Command:Result`
58
- - Feedback original command.
82
+
83
+ - `Eco::API::UseCases::GraphQL::Helpers::Location::Command:Result`
84
+ - Feedback original command.
59
85
 
60
86
  ### Changed
61
- - upgraded `ecoportal-api-graphql` gem
62
- - able to skip email via options (`-no-email`)
87
+
88
+ - upgraded `ecoportal-api-graphql` gem
89
+ - able to skip email via options (`-no-email`)
63
90
 
64
91
  ### Fixed
65
92
 
66
93
  ## [2.7.7] - 2024-05-16
67
94
 
68
95
  ### Fixed
69
- - `Eco::API::UseCases::OozeSamples::TargetOozesUpdateCase`
70
- - default prompt to user to `Y` when in remote mode.
96
+
97
+ - `Eco::API::UseCases::OozeSamples::TargetOozesUpdateCase`
98
+ - default prompt to user to `Y` when in remote mode.
71
99
 
72
100
  ## [2.7.6] - 2024-05-16
73
101
 
74
102
  ### Changed
75
- - upgraded `ecoportal-api-graphql` gem, and `ecoportal-api` gem
76
- - `Eco::API::Common::People::Entries` (**optimization**)
77
- - Remove supervisors order
78
- - It could create cyclic supervisors.
79
- - `Eco::API::MicroCases#set_supervisor` slight improvemnent to prevent cyclic supers (self + added one to one)
103
+
104
+ - upgraded `ecoportal-api-graphql` gem, and `ecoportal-api` gem
105
+ - `Eco::API::Common::People::Entries` (**optimization**)
106
+ - Remove supervisors order
107
+ - It could create cyclic supervisors.
108
+ - `Eco::API::MicroCases#set_supervisor` slight improvemnent to prevent cyclic supers (self + added one to one)
80
109
 
81
110
  ### Fixed
82
- - `Eco::API::UseCases::GraphQL::Helpers::Location::Command::Diff::AsUpdate`
83
- - `classificationIds` should be always an `Array`
111
+
112
+ - `Eco::API::UseCases::GraphQL::Helpers::Location::Command::Diff::AsUpdate`
113
+ - `classificationIds` should be always an `Array`
84
114
 
85
115
  ## [2.7.5] - 2024-05-07
86
116
 
87
117
  ### Fixed
88
- - `Eco::API::UseCases::GraphQL::Utils` typo
118
+
119
+ - `Eco::API::UseCases::GraphQL::Utils` typo
89
120
 
90
121
  ## [2.7.4] - 2024-05-07
91
122
 
92
123
  ### Fixed
93
- - Loading of tree diff / update service
124
+
125
+ - Loading of tree diff / update service
94
126
 
95
127
  ## [2.7.3] - 2024-05-07
96
128
 
97
129
  ### Changed
98
- - upgraded `ecoportal-api-graphql`
99
- - Mailer
100
- - heading of errors and warnings: added **ALL** to state clearly that all warnings and errors come thereon
101
- - Batch Errors: removed _batch_ wording, as it refers to a single action in the batch
130
+
131
+ - upgraded `ecoportal-api-graphql`
132
+ - Mailer
133
+ - heading of errors and warnings: added **ALL** to state clearly that all warnings and errors come thereon
134
+ - Batch Errors: removed _batch_ wording, as it refers to a single action in the batch
102
135
 
103
136
  ### Fixed
104
- - Tree diff helpers loading (load as if concern)
137
+
138
+ - Tree diff helpers loading (load as if concern)
105
139
 
106
140
  ## [2.7.2] - 2024-04-23
107
141
 
108
142
  ### Added
109
- - **Parsers**
110
- - Native **number parser**, added _warning_ when number cannot be parsed
143
+
144
+ - **Parsers**
145
+ - Native **number parser**, added _warning_ when number cannot be parsed
111
146
 
112
147
  ## [2.7.1] - 2024-04-23
113
148
 
114
149
  ### Fixed
115
- - `Eco::Language::AuxiliaLogger` prioritize `session.logger` in the object scoping process.
150
+
151
+ - `Eco::Language::AuxiliaLogger` prioritize `session.logger` in the object scoping process.
116
152
 
117
153
  ## [2.7.0] - 2024-04-23
118
154
 
119
155
  ### Added
120
- - **support** for node **classifications** on
121
- - `Eco::Data::Locations::NodePlain`
122
- - `Eco::API::Organization::TagTree`
123
- - It `downcase` the classification values
124
- - added class `Eco::API::Organization::NodeClassifications`
125
- - `#node_classifications` method in `session`, `session.config` and in `config.tagtree`
126
- - **validation** helpers via locations base case (`Eco::API::UseCases::GraphQL::Helpers::Location::Base::ClassificationsParser`)
127
- - Use case (**made native**)
128
- - `-tagtree-upload` => `Eco::API::UseCases::Default::Locations::TagtreeUpload`
129
- - it can target specific tree via `-structure-id` cli argument
130
- - it has some **optimizations** such as:
131
- 1. Only backing up the tree once (before)
132
- 2. Not graphql querying the tree as a response of each batch commands request
133
- - Parameter `-file-as-source` for `-tagtree-extract` provided that the case can **convert** input tree csv files into a list of nodes (`Eco::API::UseCases::Default::Locations::TagtreeExtract`)
134
- - **Tagtree UPDATE** case helpers. Added three service modules for quickly building **custom tagtree update cases**. See:
135
- 1. `Eco::API::UseCases::GraphQL::Samples::Location::Service::TreeToList`
136
- 2. `Eco::API::UseCases::GraphQL::Samples::Location::Service::TreeDiff`
137
- 3. `Eco::API::UseCases::GraphQL::Samples::Location::Command::Service::TreeUpdate`
138
- - `snake_case` helper (at `Eco::Data::Strings::SnakeCase`)
139
- - `camel_case` helper (at `Eco::Data::Strings::CamelCase`)
140
- - `camel_case` helper (at `Eco::Data::Strings::CamelCase`)
141
- - snake vs camel indifferent access helper (at `Eco::Data::Hashes::SnakeCamelIndifferentAccess`)
142
- - **Optimization** helper classes to cluster node diffs:
143
- - `Eco::Data::Locations::NodeDiff::NodesDiff::ClusteredTreeify`: key helper
144
- - `Eco::Data::Locations::NodeDiff::NodesDiff::DiffsTree`: supporting class.
145
- - **consistency** (snake vs camel case) on `parentd` for `Eco::Data::Locations::NodeLevel`
146
- - `Eco::API::UseCases::GraphQL::Utils::Sftp`
147
- - Configurable `remote_folder`
148
- - Made **native** location diffs staged command builders
149
- - These helpers target ONLY location nodes where the `id` are **codes**
150
- - Please notice that composed `id` (i.e. `name - code`) is NOT supported (as there isn't a clean way to update => no batch remap location ids operation available)
151
- - **Added** class and namespaces under `Eco::API::UseCases::GraphQL::Helpers::Location::Command`
152
- - `Diff`
153
- - `Diffs`
154
- - **SFTP Helpers** review
155
- - `Eco::API::Common::Session::SFTP#upload` added method
156
- - `Eco::API::UseCases::GraphQL::Utils::SFTP`
157
- - `#sftp_download_files` added method
158
- - `#local_folder` for downloading the files
159
- - added parameters to the existing methods
160
-
161
- ### Changed
162
- - **Parsers**
163
- - Native **date parser**, added _warning_ when date cannot be parsed
164
- - Migrated **select parser** (`Eco::API::Common::People::DefaultParsers::SelectParser`). This change entailed to introduce several changes:
165
- - Added _warning_ when select option is unknown.
166
- - `Eco::API::Common::People::PersonParser`:
167
- 1. methods `#parse` and `#serialize` call to the parser/serializer method by using a block to resolve `Proc` call dependencies.
168
- 2. **added** method `#select_tables` (this has been moved from the _default parsers_ class to the _person parser_ itself)
169
- - `Eco::Language::Models::ParserSerializer`
170
- - methods `#parse` and `#serialize` can be called with a `block` to resolve dependencies.
171
- - `Eco::CSV::Table` the internal method `to_rows_array` was not spliting `Array` values with pipe operator `|`. Made so it does so.
172
- - **Note** that `to_array_of_hashes` (the opposite method) does NOT convert them back to `Array` (but it wasn't converting back the array string to its Array version anyway)
173
- - **renamed** use case `-export-tree` to `-tagtree-extract`
174
- - `Eco::API::UseCases::Default::Locations::TagtreeExtract`
175
- - **Improved** `Eco::Data::Locations::NodeLevel` by adding support for `classifications` and `classification_names`
176
- - It just catches the **original header** names, and uses them
177
- - **Note** that these headers may NOT be actual classifications, but just conventional header names. For this reason, it is **required** that there is a **parse** function that **validates** that they are **actual classifications**
156
+
157
+ - **support** for node **classifications** on
158
+ - `Eco::Data::Locations::NodePlain`
159
+ - `Eco::API::Organization::TagTree`
160
+ - It `downcase` the classification values
161
+ - added class `Eco::API::Organization::NodeClassifications`
162
+ - `#node_classifications` method in `session`, `session.config` and in `config.tagtree`
163
+ - **validation** helpers via locations base case (`Eco::API::UseCases::GraphQL::Helpers::Location::Base::ClassificationsParser`)
164
+ - Use case (**made native**)
165
+ - `-tagtree-upload` => `Eco::API::UseCases::Default::Locations::TagtreeUpload`
166
+ - it can target specific tree via `-structure-id` cli argument
167
+ - it has some **optimizations** such as:
168
+ 1. Only backing up the tree once (before)
169
+ 2. Not graphql querying the tree as a response of each batch commands request
170
+ - Parameter `-file-as-source` for `-tagtree-extract` provided that the case can **convert** input tree csv files into a list of nodes (`Eco::API::UseCases::Default::Locations::TagtreeExtract`)
171
+ - **Tagtree UPDATE** case helpers. Added three service modules for quickly building **custom tagtree update cases**. See:
172
+ 1. `Eco::API::UseCases::GraphQL::Samples::Location::Service::TreeToList`
173
+ 2. `Eco::API::UseCases::GraphQL::Samples::Location::Service::TreeDiff`
174
+ 3. `Eco::API::UseCases::GraphQL::Samples::Location::Command::Service::TreeUpdate`
175
+ - `snake_case` helper (at `Eco::Data::Strings::SnakeCase`)
176
+ - `camel_case` helper (at `Eco::Data::Strings::CamelCase`)
177
+ - `camel_case` helper (at `Eco::Data::Strings::CamelCase`)
178
+ - snake vs camel indifferent access helper (at `Eco::Data::Hashes::SnakeCamelIndifferentAccess`)
179
+ - **Optimization** helper classes to cluster node diffs:
180
+ - `Eco::Data::Locations::NodeDiff::NodesDiff::ClusteredTreeify`: key helper
181
+ - `Eco::Data::Locations::NodeDiff::NodesDiff::DiffsTree`: supporting class.
182
+ - **consistency** (snake vs camel case) on `parentd` for `Eco::Data::Locations::NodeLevel`
183
+ - `Eco::API::UseCases::GraphQL::Utils::Sftp`
184
+ - Configurable `remote_folder`
185
+ - Made **native** location diffs staged command builders
186
+ - These helpers target ONLY location nodes where the `id` are **codes**
187
+ - Please notice that composed `id` (i.e. `name - code`) is NOT supported (as there isn't a clean way to update => no batch remap location ids operation available)
188
+ - **Added** class and namespaces under `Eco::API::UseCases::GraphQL::Helpers::Location::Command`
189
+ - `Diff`
190
+ - `Diffs`
191
+ - **SFTP Helpers** review
192
+ - `Eco::API::Common::Session::SFTP#upload` added method
193
+ - `Eco::API::UseCases::GraphQL::Utils::SFTP`
194
+ - `#sftp_download_files` added method
195
+ - `#local_folder` for downloading the files
196
+ - added parameters to the existing methods
197
+
198
+ ### Changed
199
+
200
+ - **Parsers**
201
+ - Native **date parser**, added _warning_ when date cannot be parsed
202
+ - Migrated **select parser** (`Eco::API::Common::People::DefaultParsers::SelectParser`). This change entailed to introduce several changes:
203
+ - Added _warning_ when select option is unknown.
204
+ - `Eco::API::Common::People::PersonParser`:
205
+ 1. methods `#parse` and `#serialize` call to the parser/serializer method by using a block to resolve `Proc` call dependencies.
206
+ 2. **added** method `#select_tables` (this has been moved from the _default parsers_ class to the _person parser_ itself)
207
+ - `Eco::Language::Models::ParserSerializer`
208
+ - methods `#parse` and `#serialize` can be called with a `block` to resolve dependencies.
209
+ - `Eco::CSV::Table` the internal method `to_rows_array` was not spliting `Array` values with pipe operator `|`. Made so it does so.
210
+ - **Note** that `to_array_of_hashes` (the opposite method) does NOT convert them back to `Array` (but it wasn't converting back the array string to its Array version anyway)
211
+ - **renamed** use case `-export-tree` to `-tagtree-extract`
212
+ - `Eco::API::UseCases::Default::Locations::TagtreeExtract`
213
+ - **Improved** `Eco::Data::Locations::NodeLevel` by adding support for `classifications` and `classification_names`
214
+ - It just catches the **original header** names, and uses them
215
+ - **Note** that these headers may NOT be actual classifications, but just conventional header names. For this reason, it is **required** that there is a **parse** function that **validates** that they are **actual classifications**
216
+ - `Eco::API::Organization::TagTree`
217
+ - **changed** `as_json` serialization on **classifications** (it serializes to a `dup` of the `Array` now) - ceased to ~~`join('|')`~~
218
+ - **changed** `as_json`. It now includes `level` (`depth + 1`)
219
+ - **Optimized** life cycle of applying commands to _locations structures_
220
+ - This optimization is based on **NOT retrieving** the full locations structure on each request (_apply commands payload block_ on **graphql**). This also entails that the number of **backups** per run is drastically minimized.
221
+ - `Eco::API::UseCases::GraphQL::Helpers::Location::Command::DSL`
222
+ - **Added** `#batch_tree_track_mode` to define what tracking mode would be used at each commands stage.
223
+ - The only stage that tracks/backes-up the tree on each request is now `:id` (or `:id_name`) -> remap location ids _integrity check_ purposes (which is actually somehow redundant; just an additional measure in place).
224
+ - `Eco::API::UseCases::GraphQL::Helpers::Location::Command`
225
+ - `#sliced_batches`
226
+ - **added** parameter `track_tree_mode:`
227
+ - **before** final call to `apply_commands`, it scopes the payload `block` of the request (using the new custom method `scope_commands_block`, see below)
228
+ - Decoupled re-configurable (**overridable**) methods into `Optimizations` sub-space: `Eco::API::UseCases::GraphQL::Helpers::Location::Command::Optimizations`
229
+ - `#default_tree_tracking_mode` the fallback tracking mode (besides `#batch_tree_track_mode` on `DLS`)
230
+ - `#scope_commands_block` based on the current tree tracking mode, it scopes what the block for the apply commands payload will be
231
+ - `#commands_payload_without_structure_block`: sample graphql payload block that does NOT retrieve the locations structure (**optimization lies here**)
232
+ - `Eco::API::UseCases::GraphQL::Samples::Location::Command::Results`
233
+ - **Decoupled** tracking of changed ids into `Eco::API::UseCases::GraphQL::Samples::Location::Command::TrackChangedIds`
234
+ - `#update_tags_remap_table` -> remove `:move` stage tracking
235
+ - As content only has the lowest level location node, moving does **NOT** entail remapping locations any longer (there isn't full path on content at this stage; after `RS P3` release)
236
+ - `Eco::Data::Locations::NodeDiff`
237
+ - `archived?` added parameter for **validation** (default `true`)
238
+ - `attr_expose`
239
+ - It adds `_prev` as a postfix (**removed** as a prefix ~~`prev_`~~)
240
+ - It uses the question mark `?` alone (**removed** ~~`diff_`~~ prefix)
241
+ - **added** all these methods support now `snake_case`
242
+ - **BREAKING** change to move onto **RS P3 post-release**
243
+ - A change of `name?` **WON'T** trigger a change of `id` (`nodeId`) any more
244
+ - For this reason, identification on changes on the `id` will be besides changes of the `name`
245
+ - `Eco::Data::Locations::NodeDiff::NodesDiff`- **Important change** on `#diffs` (core property)
246
+ - It now discards diffs that `insert?` and `archive?` as well, provided that they do not generate updates
247
+ - **Note** that this limiation may be a drawback when we aim to import historical location nodes that should be in the org (for import purposes) but that are not active locations. The way **around it** is to just use an input where the `archived` property is `false` (later on launch those again with `archived` true, but lets do a good input data integrity check here)
248
+ - `Eco::Data::Hashes::DiffResult`
249
+ - moved `Meta` under its namespace
250
+ - created _private_ unique points to access source hashes. This will allows to extend the behaviour from child classes
251
+ - **Moved** hash accessors (**DSL**) to `Eco::Data::Hashes::DiffResult::Meta`
252
+ - also **added** method `key_present?`
253
+ - **improved** `slice_attrs` to return `nil` if `src` isn't present.
254
+ - **added** `Array` comparizon via `eq?` method.
255
+ - (Class) **Added** named arg `when_present` to `compare` class method.
256
+ - (Instance) **Removed** unused method `compared_attrs`
257
+ - **Replaced by** `all_compared_attrs`
258
+ - (Class) **Added** `compared_attrs_when_present`
259
+ - (Instance) **Added** `comparable_attr?`, which based on `all_compared_attrs` (instance method) checks if `attr` is required for presence on both source hashes (`src_1` and `src_2`)
260
+ - This is supported by the **new** method `key_present_in_both?`
261
+ - (Instance) **Modified** behaviour on `diff_attrs` provided that takes into consideration if an `attr` is **comparable** (`comparable_attr?`)
262
+ - upgrade **gems** `ecoportal-api-v2` and `ecoportal-api-graphql`
263
+ - this brings some optimizations when treeifying locations structures
264
+ - `Eco::Data::Hashes::ArrayDiff`
265
+ - **Removed** unused method `compared_attrs`
266
+
267
+ ### Fixed
268
+
269
+ - upgrade `ecoportal-api-v2` **gem**
270
+ - A bunch of small things on the `Eco::Data::Locations` namespace
271
+ - `Eco::API::Session::Config#live_trees` to choose a tree when only one
272
+ - `Eco::API::UseCases::GraphQL::Helpers::Location::Base`
273
+ - `tagtree_id` method should `map` values rather than `select` keys on `options`
274
+ - `Eco::Data::Locations::NodeDiff::NodesDiff`
275
+ - fix `diffs_summary` lining
276
+ - `Eco::Language::Methods::DslAble`
277
+ - explicit behaviour for `respond_to_missing?` (dsl doesn't need to allow method capturing via `method` call)
278
+ - add `__FILE__` and `__LINE__` to error backtrace on `eval`
279
+ - Parsing `archived` value in
178
280
  - `Eco::API::Organization::TagTree`
179
- - **changed** `as_json` serialization on **classifications** (it serializes to a `dup` of the `Array` now) - ceased to ~~`join('|')`~~
180
- - **changed** `as_json`. It now includes `level` (`depth + 1`)
181
- - **Optimized** life cycle of applying commands to _locations structures_
182
- - This optimization is based on **NOT retrieving** the full locations structure on each request (_apply commands payload block_ on **graphql**). This also entails that the number of **backups** per run is drastically minimized.
183
- - `Eco::API::UseCases::GraphQL::Helpers::Location::Command::DSL`
184
- - **Added** `#batch_tree_track_mode` to define what tracking mode would be used at each commands stage.
185
- - The only stage that tracks/backes-up the tree on each request is now `:id` (or `:id_name`) -> remap location ids _integrity check_ purposes (which is actually somehow redundant; just an additional measure in place).
186
- - `Eco::API::UseCases::GraphQL::Helpers::Location::Command`
187
- - `#sliced_batches`
188
- - **added** parameter `track_tree_mode:`
189
- - **before** final call to `apply_commands`, it scopes the payload `block` of the request (using the new custom method `scope_commands_block`, see below)
190
- - Decoupled re-configurable (**overridable**) methods into `Optimizations` sub-space: `Eco::API::UseCases::GraphQL::Helpers::Location::Command::Optimizations`
191
- - `#default_tree_tracking_mode` the fallback tracking mode (besides `#batch_tree_track_mode` on `DLS`)
192
- - `#scope_commands_block` based on the current tree tracking mode, it scopes what the block for the apply commands payload will be
193
- - `#commands_payload_without_structure_block`: sample graphql payload block that does NOT retrieve the locations structure (**optimization lies here**)
194
- - `Eco::API::UseCases::GraphQL::Samples::Location::Command::Results`
195
- - **Decoupled** tracking of changed ids into `Eco::API::UseCases::GraphQL::Samples::Location::Command::TrackChangedIds`
196
- - `#update_tags_remap_table` -> remove `:move` stage tracking
197
- - As content only has the lowest level location node, moving does **NOT** entail remapping locations any longer (there isn't full path on content at this stage; after `RS P3` release)
198
- - `Eco::Data::Locations::NodeDiff`
199
- - `archived?` added parameter for **validation** (default `true`)
200
- - `attr_expose`
201
- - It adds `_prev` as a postfix (**removed** as a prefix ~~`prev_`~~)
202
- - It uses the question mark `?` alone (**removed** ~~`diff_`~~ prefix)
203
- - **added** all these methods support now `snake_case`
204
- - **BREAKING** change to move onto **RS P3 post-release**
205
- - A change of `name?` **WON'T** trigger a change of `id` (`nodeId`) any more
206
- - For this reason, identification on changes on the `id` will be besides changes of the `name`
207
- - `Eco::Data::Locations::NodeDiff::NodesDiff`- **Important change** on `#diffs` (core property)
208
- - It now discards diffs that `insert?` and `archive?` as well, provided that they do not generate updates
209
- - **Note** that this limiation may be a drawback when we aim to import historical location nodes that should be in the org (for import purposes) but that are not active locations. The way **around it** is to just use an input where the `archived` property is `false` (later on launch those again with `archived` true, but lets do a good input data integrity check here)
210
- - `Eco::Data::Hashes::DiffResult`
211
- - moved `Meta` under its namespace
212
- - created _private_ unique points to access source hashes. This will allows to extend the behaviour from child classes
213
- - **Moved** hash accessors (**DSL**) to `Eco::Data::Hashes::DiffResult::Meta`
214
- - also **added** method `key_present?`
215
- - **improved** `slice_attrs` to return `nil` if `src` isn't present.
216
- - **added** `Array` comparizon via `eq?` method.
217
- - (Class) **Added** named arg `when_present` to `compare` class method.
218
- - (Instance) **Removed** unused method `compared_attrs`
219
- - **Replaced by** `all_compared_attrs`
220
- - (Class) **Added** `compared_attrs_when_present`
221
- - (Instance) **Added** `comparable_attr?`, which based on `all_compared_attrs` (instance method) checks if `attr` is required for presence on both source hashes (`src_1` and `src_2`)
222
- - This is supported by the **new** method `key_present_in_both?`
223
- - (Instance) **Modified** behaviour on `diff_attrs` provided that takes into consideration if an `attr` is **comparable** (`comparable_attr?`)
224
- - upgrade **gems** `ecoportal-api-v2` and `ecoportal-api-graphql`
225
- - this brings some optimizations when treeifying locations structures
226
- - `Eco::Data::Hashes::ArrayDiff`
227
- - **Removed** unused method `compared_attrs`
228
-
229
- ### Fixed
230
- - upgrade `ecoportal-api-v2` **gem**
231
- - A bunch of small things on the `Eco::Data::Locations` namespace
232
- - `Eco::API::Session::Config#live_trees` to choose a tree when only one
233
- - `Eco::API::UseCases::GraphQL::Helpers::Location::Base`
234
- - `tagtree_id` method should `map` values rather than `select` keys on `options`
235
- - `Eco::Data::Locations::NodeDiff::NodesDiff`
236
- - fix `diffs_summary` lining
237
- - `Eco::Language::Methods::DslAble`
238
- - explicit behaviour for `respond_to_missing?` (dsl doesn't need to allow method capturing via `method` call)
239
- - add `__FILE__` and `__LINE__` to error backtrace on `eval`
240
- - Parsing `archived` value in
241
- - `Eco::API::Organization::TagTree`
242
- - `Eco::Data::Locations::NodePlain`
281
+ - `Eco::Data::Locations::NodePlain`
243
282
 
244
283
  ## [2.6.4] - 2024-03-06
245
284
 
246
285
  ### Changed
247
- - updated core **gem** `ecoportal-api`
248
- - The `subordinates` core people property has been removed from the back-end
249
- - This was due to some performance issues with org hierarchy model.
250
- - As a consequence a temporary patch has been added temporarily in the current gem.
286
+
287
+ - updated core **gem** `ecoportal-api`
288
+ - The `subordinates` core people property has been removed from the back-end
289
+ - This was due to some performance issues with org hierarchy model.
290
+ - As a consequence a temporary patch has been added temporarily in the current gem.
251
291
 
252
292
  ### Fixed
253
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
254
- - initialize `@total_search_results`
293
+
294
+ - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
295
+ - initialize `@total_search_results`
255
296
 
256
297
  ## [2.6.3] - 2024-02-29
257
298
 
258
299
  ### Changed
259
- - upgrade `ecoportal-api-v2` **gem**
300
+
301
+ - upgrade `ecoportal-api-v2` **gem**
260
302
 
261
303
  ### Fixed
262
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
263
- - `dry_run_feedback` fixed typo
304
+
305
+ - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
306
+ - `dry_run_feedback` fixed typo
264
307
 
265
308
  ## [2.6.2] - 2024-02-23
266
309
 
267
310
  ### Added
268
- - `Eco::API::Session::Config::TagTree`: added **benchmarks** to locations structure live retrieval
269
- - To all **Ooze** cases that use register update
270
- - `Eco::API::UseCases::OozeSamples::Helpers::Creatable` native helpers
271
- - to draft entries
272
- - `Eco::API::UseCases::OozeSamples::RegisterMigrationCase` -> removed code double-up due to this addition to the register update case.
273
- - `Eco::API::Common::Loaders::Base` added **methods**
274
- - `#simulate?` and `#dry_run?`
275
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
276
- - added **kpis** attempted updates and attempted creations
311
+
312
+ - `Eco::API::Session::Config::TagTree`: added **benchmarks** to locations structure live retrieval
313
+ - To all **Ooze** cases that use register update
314
+ - `Eco::API::UseCases::OozeSamples::Helpers::Creatable` native helpers
315
+ - to draft entries
316
+ - `Eco::API::UseCases::OozeSamples::RegisterMigrationCase` -> removed code double-up due to this addition to the register update case.
317
+ - `Eco::API::Common::Loaders::Base` added **methods**
318
+ - `#simulate?` and `#dry_run?`
319
+ - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
320
+ - added **kpis** attempted updates and attempted creations
277
321
 
278
322
  ### Changed
279
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
280
- - `#main` allows to tell it to just `yield`
323
+
324
+ - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
325
+ - `#main` allows to tell it to just `yield`
281
326
 
282
327
  ### Fixed
283
- - `Eco::Data::Locations::NodeDiff::Selectors` `any?` (typo)
284
- - `Eco::API::UseCases::OozeSamples::TargetOozesUpdateCase`
285
- - fixed **kpis** tracking
328
+
329
+ - `Eco::Data::Locations::NodeDiff::Selectors` `any?` (typo)
330
+ - `Eco::API::UseCases::OozeSamples::TargetOozesUpdateCase`
331
+ - fixed **kpis** tracking
286
332
 
287
333
  ## [2.6.1] - 2024-02-11
288
334
 
289
335
  ### Added
290
- - For use case `Eco::API::UseCases::Default::Locations::TagtreeExtract`
291
- - New `-indent` option
292
- - `Eco::API::UseCases::UseCase`
293
- - Defines on loader object attr reader methods `people`, `input` and `usecase` unless they already exist.
294
- - Some class / method helpers
295
- - `Eco::Language::Methods::DelegateMissing` to redirect missing methods to one object
296
- - `Eco::Language::Methods::DslAble` to allow direct method calls on blocks
297
- - `Eco::Language::Klass:WhenInherited` to allow to defined a block that gets called when the class is inherited
298
- - **DSL** capabilities (for block calls) for
299
- - `Eco::API::Session::Batch::BasePolicy`
300
- - `Eco::API::Session::Batch::Job`
301
- - `api_excluded` block to be called in the Job's context
302
- - `Eco::API::UseCases::BaseIO`
303
- - This shortens code lines in workflow blocks
304
- - `Eco::API::Session::Config::Workflow#run` has been adapted to boost the evalution of the workflow blocks within the context of the `BaseIO` that is carried throughout all the run process.
305
- - **NEW** Loaders
306
- - `Eco::API::Custom::Config` (**DSL** alike) allows to open up configuration via class
307
- - Redirects to `Eco::API::Common::Loaders::Config`
308
- - Re-usable sample child classes can created with the use of `config_block`, which in combination with `when_inherited` will load the basic config to custom config classes.
309
- - `Eco::API::Custom::Workflow` (**DSL** alike) allows to open up workflow configurations via class
310
- - Redirects to `Eco::API::Common::Loaders::Config::Workflow`
311
- - `Eco::API::Custom::Mailer` (first **sample**) allows to just define some constants to modify the generic behaviour of this sample class you will want to inherit to enable mailing workflow.
312
- - Redirects to `Eco::API::Common::Loaders::Config::Workflow::Mailer`
313
- - `Eco::Assets#cli` able to yield the `cli` to a block
314
- - `Eco::API::UseCases::BaseIO#process_case`
315
- - **added method** `process_case`, which allows to pass the `io` itself as a paramter.
316
- - When this is used, the `output` swap as `input` / `people` is performed (before and after).
317
-
318
- ### Changed
319
- - **IMPORTANT** overriden `Object#inspect` to `to_s` to prevent recursive deep introspection of object internals on `MethodError`
320
- - `Eco::API::Common::Loaders::CaseBase`
321
- - **removed** attr `usecase`
336
+
337
+ - For use case `Eco::API::UseCases::Default::Locations::TagtreeExtract`
338
+ - New `-indent` option
339
+ - `Eco::API::UseCases::UseCase`
340
+ - Defines on loader object attr reader methods `people`, `input` and `usecase` unless they already exist.
341
+ - Some class / method helpers
342
+ - `Eco::Language::Methods::DelegateMissing` to redirect missing methods to one object
343
+ - `Eco::Language::Methods::DslAble` to allow direct method calls on blocks
344
+ - `Eco::Language::Klass:WhenInherited` to allow to defined a block that gets called when the class is inherited
345
+ - **DSL** capabilities (for block calls) for
346
+ - `Eco::API::Session::Batch::BasePolicy`
347
+ - `Eco::API::Session::Batch::Job`
348
+ - `api_excluded` block to be called in the Job's context
322
349
  - `Eco::API::UseCases::BaseIO`
323
- - `output` can be set on initialization
324
- - `#new` carries the `output` as well.
325
- - `Eco::API::Session::Config::Workflow`
326
- - `#run`
327
- - workflow blocks don't require to explicitly return the `BaseIO` when there isn't any to return. It will just keep the `io` as it was before the call.
328
- - also made it so the returned io is **always** an **instance of** `Eco::API::UseCases::BaseIO` (so it won't return an instance of a child class). This change can be considered a fix. **Aside note:** only possible now that `output` is carried on through objects of type (so there's there's no data loss in the calls chain) `Eco::API::UseCases::BaseIO` (i.e. `io.new`)
329
- - `#for`
330
- - **now** it only requires a `block` if no `key` is provided
331
- - `Eco::Data::Locations::NodeBase::TagValidations`
332
- - made module re-usable, by removing dependency on `clean_id` method.
333
- - Improved the **patch** on exception that adds method `#patch_full_message`
334
- - Parameter `trace_count` added (`default: -1` for full trace)
335
-
336
- ### Fixed
337
- - `Eco::Data::Locations::NodeBase::Treeify`
338
- - **bug** on strings and interpolation when building the warning/error messages
339
- - **added** detection and _warnings_ for **unlinked parents**: as `get_children` is called from the top via `nil` (those that are top level nodes), and all the call chain to collect children goes through their `parent_id` relationship.
340
- - If the input nodes had some where there's no direct link between `nil` and a node `id` that is a `parent_id`, `parents[node.id]` would never be called. Meaning that in an input with a list of nodes, there could be clusters of subtrees that do not add/link to the top level (`nil`).
341
- - It now gathers those separated subtrees in an `Array` parameter called `unlinked_trees`
342
- - `Eco::API::Session::Config::Workflow`
343
- - Returning an `Eco::API::UseCases::BaseIO` from callbacks `before`, `after` and `run` would raise an `ArgumentError`.
344
- - **Now** the original `io` is returned otherwise the returned value is a `BaseIO`
345
- - `Eco::API::Session::Config::Workflow`
346
- - **changed** `open` to alias method for `with` (open was clashing)
347
- - `Eco::API::UseCases::GraphQL::Helpers::Location::Base`
348
- - **removed** `enviro` param for org tagtree built
349
- - `Eco::API::UseCases::Cli::DSL`
350
- - `::callback` was not acting like a DSL method, which would just return `nil` always (lost `block`)
351
- - CLI arguments are unique. If a Cli class has already been run, no need to re-run it. Cli class re-usability is still not in the pipeline, and therefore, it must be run only once.
352
- - `Eco::Data::Locations::NodePlain`
353
- - `serializer` referred to an non existing constant.
354
- - **IMPORTANT** `parent_id` should be `cleaned` as well. Otherwise parents with an id cleanage don't match their children's `parent_id`
355
- - `Eco::API::Common::ClassHelpers`
356
- - `::inerited` method must call `super` to be able to chain other calls
357
- - `Eco::API::Common::Session::Mailer`
358
- - The logging message was not printing who the email was sent to.
350
+ - This shortens code lines in workflow blocks
351
+ - `Eco::API::Session::Config::Workflow#run` has been adapted to boost the evalution of the workflow blocks within the context of the `BaseIO` that is carried throughout all the run process.
352
+ - **NEW** Loaders
353
+ - `Eco::API::Custom::Config` (**DSL** alike) allows to open up configuration via class
354
+ - Redirects to `Eco::API::Common::Loaders::Config`
355
+ - Re-usable sample child classes can created with the use of `config_block`, which in combination with `when_inherited` will load the basic config to custom config classes.
356
+ - `Eco::API::Custom::Workflow` (**DSL** alike) allows to open up workflow configurations via class
357
+ - Redirects to `Eco::API::Common::Loaders::Config::Workflow`
358
+ - `Eco::API::Custom::Mailer` (first **sample**) allows to just define some constants to modify the generic behaviour of this sample class you will want to inherit to enable mailing workflow.
359
+ - Redirects to `Eco::API::Common::Loaders::Config::Workflow::Mailer`
360
+ - `Eco::Assets#cli` able to yield the `cli` to a block
361
+ - `Eco::API::UseCases::BaseIO#process_case`
362
+ - **added method** `process_case`, which allows to pass the `io` itself as a paramter.
363
+ - When this is used, the `output` swap as `input` / `people` is performed (before and after).
364
+
365
+ ### Changed
366
+
367
+ - **IMPORTANT** overriden `Object#inspect` to `to_s` to prevent recursive deep introspection of object internals on `MethodError`
368
+ - `Eco::API::Common::Loaders::CaseBase`
369
+ - **removed** attr `usecase`
370
+ - `Eco::API::UseCases::BaseIO`
371
+ - `output` can be set on initialization
372
+ - `#new` carries the `output` as well.
373
+ - `Eco::API::Session::Config::Workflow`
374
+ - `#run`
375
+ - workflow blocks don't require to explicitly return the `BaseIO` when there isn't any to return. It will just keep the `io` as it was before the call.
376
+ - also made it so the returned io is **always** an **instance of** `Eco::API::UseCases::BaseIO` (so it won't return an instance of a child class). This change can be considered a fix. **Aside note:** only possible now that `output` is carried on through objects of type (so there's there's no data loss in the calls chain) `Eco::API::UseCases::BaseIO` (i.e. `io.new`)
377
+ - `#for`
378
+ - **now** it only requires a `block` if no `key` is provided
379
+ - `Eco::Data::Locations::NodeBase::TagValidations`
380
+ - made module re-usable, by removing dependency on `clean_id` method.
381
+ - Improved the **patch** on exception that adds method `#patch_full_message`
382
+ - Parameter `trace_count` added (`default: -1` for full trace)
383
+
384
+ ### Fixed
385
+
386
+ - `Eco::Data::Locations::NodeBase::Treeify`
387
+ - **bug** on strings and interpolation when building the warning/error messages
388
+ - **added** detection and _warnings_ for **unlinked parents**: as `get_children` is called from the top via `nil` (those that are top level nodes), and all the call chain to collect children goes through their `parent_id` relationship.
389
+ - If the input nodes had some where there's no direct link between `nil` and a node `id` that is a `parent_id`, `parents[node.id]` would never be called. Meaning that in an input with a list of nodes, there could be clusters of subtrees that do not add/link to the top level (`nil`).
390
+ - It now gathers those separated subtrees in an `Array` parameter called `unlinked_trees`
391
+ - `Eco::API::Session::Config::Workflow`
392
+ - Returning an `Eco::API::UseCases::BaseIO` from callbacks `before`, `after` and `run` would raise an `ArgumentError`.
393
+ - **Now** the original `io` is returned otherwise the returned value is a `BaseIO`
394
+ - `Eco::API::Session::Config::Workflow`
395
+ - **changed** `open` to alias method for `with` (open was clashing)
396
+ - `Eco::API::UseCases::GraphQL::Helpers::Location::Base`
397
+ - **removed** `enviro` param for org tagtree built
398
+ - `Eco::API::UseCases::Cli::DSL`
399
+ - `::callback` was not acting like a DSL method, which would just return `nil` always (lost `block`)
400
+ - CLI arguments are unique. If a Cli class has already been run, no need to re-run it. Cli class re-usability is still not in the pipeline, and therefore, it must be run only once.
401
+ - `Eco::Data::Locations::NodePlain`
402
+ - `serializer` referred to an non existing constant.
403
+ - **IMPORTANT** `parent_id` should be `cleaned` as well. Otherwise parents with an id cleanage don't match their children's `parent_id`
404
+ - `Eco::API::Common::ClassHelpers`
405
+ - `::inerited` method must call `super` to be able to chain other calls
406
+ - `Eco::API::Common::Session::Mailer`
407
+ - The logging message was not printing who the email was sent to.
359
408
 
360
409
  ## [2.6.0] - 2024-02-03
361
410
 
362
411
  ### Added
363
- - New use case to `-export-tree` (**tagtree extract**)
364
- - `Eco::API::UseCases::Default::Locations::TagtreeExtract`
365
- - `Eco::API::UseCases::UseCase`
366
- - added `#classed_definition` to expose the original class definition
367
- - injected further parameter as instance variables to the original class definition on run-time.
368
- - Expose `live_trees` retrieval:
369
- - `Eco::API::Session#live_trees`
370
- - `Eco::API::Session::Config#live_trees`
371
- - Ability to CLI-integrate use cases and their options via class
372
- - `Eco::API::UseCases::Cli`
373
- - Added use case to extract live locations structure (`-export-tree`)
374
- - `Eco::API::UseCases::GraphQL::Cases::TagtreeExtract`
375
- - `#api?` method to check if an API version is available
376
- - `Eco::API::Common::Session::Environment#api?`
377
- - `Eco::API::Common::Session::BaseSession#api?`
378
- - `Eco::API::Organization::TagTree#merge` the merge method for tagtrees
379
- - It allows to have all structure nodes available to check if a tag belongs to them
380
- - `Eco::API::Session::Config::Workflow`
381
- - **added** `open` alias method for `for`
382
- - `Eco::Data::Mapper#self_mapped?` to check if a value maps to itself
383
-
384
- ### Changed
385
- - upgrade `ecoportal-api-graphql`, `ecoportal-api-v2` and `ecoportal-api`
386
- - `Eco::API::Session#tagtree`: added parameters to be able to obtain:
387
- - `:live` live trees if graphql api is available on the enviro
388
- - `:merge` to merge all live trees if there isn't just one
389
- - Tagtree retrieval: remove `enviro` param where there's no caching
390
- - Removed also from `Eco::API::Organization::TagTree::new`
391
- - Removed some use cases:
392
- - `Eco::API::UseCases::DefaultCases::AbstractPolicyGroupAbilities`
393
- - `Eco::API::UseCases::DefaultCases::AppendUsergroupsCase`
394
- - `Eco::API::UseCases::DefaultCases::CreateDetailsCase`
395
- - `Eco::API::UseCases::DefaultCases::CreateDetailsWithSupervisorCase`
396
- - `Eco::API::UseCases::DefaultCases::EmailAsIdCase`
397
- - `Eco::API::UseCases::DefaultCases::NewIdCase`
398
- - `Eco::API::UseCases::DefaultCases::RemoveAccountSyncCase`
399
- - `Eco::API::UseCases::DefaultCases::RemoveAccountTransCase`
400
- - `Eco::API::UseCases::DefaultCases::NewEmailCase`
401
- - `Eco::API::UseCases::DefaultCases::SetSupervisorCase`
402
- - `Eco::API::UseCases::DefaultCases::TagTree`
403
- - `Eco::API::UseCases::DefaultCases::UpdateDetailsCase`
404
- - `Eco::API::UseCases::DefaultCases::ResetLandingPageCase`
405
- - Moved some default use cases to new namespace `Eco::API::UseCases::Default`
406
-
407
- ### Fixed
408
- - Compatibility with `ruby 3`
409
- - replaced `Proc.new` (with no block) by `block` in methods
410
- - replaced `File#exists?` by `File#exist?`
411
- - call to method's `super` not specifying args, no longer passes keyed/named args via simple splat `*` (but only double splat `**`)
412
- - limit `nokogiri` gem to prev `1.16` (as it requires ruby 3 from thereon)
413
- - `Eco::API::Common::People::PersonEntryAttributeMapper`
414
- - `#aliased_attrs` was missing internal attrs that have been mapped directly as external attrs (same ext attr name as int attr name)
412
+
413
+ - New use case to `-export-tree` (**tagtree extract**)
414
+ - `Eco::API::UseCases::Default::Locations::TagtreeExtract`
415
+ - `Eco::API::UseCases::UseCase`
416
+ - added `#classed_definition` to expose the original class definition
417
+ - injected further parameter as instance variables to the original class definition on run-time.
418
+ - Expose `live_trees` retrieval:
419
+ - `Eco::API::Session#live_trees`
420
+ - `Eco::API::Session::Config#live_trees`
421
+ - Ability to CLI-integrate use cases and their options via class
422
+ - `Eco::API::UseCases::Cli`
423
+ - Added use case to extract live locations structure (`-export-tree`)
424
+ - `Eco::API::UseCases::GraphQL::Cases::TagtreeExtract`
425
+ - `#api?` method to check if an API version is available
426
+ - `Eco::API::Common::Session::Environment#api?`
427
+ - `Eco::API::Common::Session::BaseSession#api?`
428
+ - `Eco::API::Organization::TagTree#merge` the merge method for tagtrees
429
+ - It allows to have all structure nodes available to check if a tag belongs to them
430
+ - `Eco::API::Session::Config::Workflow`
431
+ - **added** `open` alias method for `for`
432
+ - `Eco::Data::Mapper#self_mapped?` to check if a value maps to itself
433
+
434
+ ### Changed
435
+
436
+ - upgrade `ecoportal-api-graphql`, `ecoportal-api-v2` and `ecoportal-api`
437
+ - `Eco::API::Session#tagtree`: added parameters to be able to obtain:
438
+ - `:live` live trees if graphql api is available on the enviro
439
+ - `:merge` to merge all live trees if there isn't just one
440
+ - Tagtree retrieval: remove `enviro` param where there's no caching
441
+ - Removed also from `Eco::API::Organization::TagTree::new`
442
+ - Removed some use cases:
443
+ - `Eco::API::UseCases::DefaultCases::AbstractPolicyGroupAbilities`
444
+ - `Eco::API::UseCases::DefaultCases::AppendUsergroupsCase`
445
+ - `Eco::API::UseCases::DefaultCases::CreateDetailsCase`
446
+ - `Eco::API::UseCases::DefaultCases::CreateDetailsWithSupervisorCase`
447
+ - `Eco::API::UseCases::DefaultCases::EmailAsIdCase`
448
+ - `Eco::API::UseCases::DefaultCases::NewIdCase`
449
+ - `Eco::API::UseCases::DefaultCases::RemoveAccountSyncCase`
450
+ - `Eco::API::UseCases::DefaultCases::RemoveAccountTransCase`
451
+ - `Eco::API::UseCases::DefaultCases::NewEmailCase`
452
+ - `Eco::API::UseCases::DefaultCases::SetSupervisorCase`
453
+ - `Eco::API::UseCases::DefaultCases::TagTree`
454
+ - `Eco::API::UseCases::DefaultCases::UpdateDetailsCase`
455
+ - `Eco::API::UseCases::DefaultCases::ResetLandingPageCase`
456
+ - Moved some default use cases to new namespace `Eco::API::UseCases::Default`
457
+
458
+ ### Fixed
459
+
460
+ - Compatibility with `ruby 3`
461
+ - replaced `Proc.new` (with no block) by `block` in methods
462
+ - replaced `File#exists?` by `File#exist?`
463
+ - call to method's `super` not specifying args, no longer passes keyed/named args via simple splat `*` (but only double splat `**`)
464
+ - limit `nokogiri` gem to prev `1.16` (as it requires ruby 3 from thereon)
465
+ - `Eco::API::Common::People::PersonEntryAttributeMapper`
466
+ - `#aliased_attrs` was missing internal attrs that have been mapped directly as external attrs (same ext attr name as int attr name)
415
467
 
416
468
  ## [2.5.10] - 2023-11-22
417
469
 
418
470
  ### Fixed
419
- - `Eco::API::UseCases::DefaultCases::ReinviteSyncCase` remove unnecessary additional parameters on call.
420
- - `Eco::API::Session::Config::SFTP#enviro_subpaths` provided that a current workaround can be skipped
471
+
472
+ - `Eco::API::UseCases::DefaultCases::ReinviteSyncCase` remove unnecessary additional parameters on call.
473
+ - `Eco::API::Session::Config::SFTP#enviro_subpaths` provided that a current workaround can be skipped
421
474
 
422
475
  ## [2.5.9] - 2023-09-05
423
476
 
424
477
  The input **csv** of trees could come very compacted, which had unintended consequences.
425
- - This is a fix to this scenario.
426
-
427
- ### Added
428
- - `Eco::Data::Locations::NodeLevel#raw_latest_consecutive_top_empty_level`
429
- - To scope the missing ancestors (up to what level)
430
- - `Eco::API::UseCases::DefaultCases::Samples::Sftp`
431
- - Options for `remote_subfolder`, `remote_target_folder` and `remote_folder`
432
- - `Eco::API::Organization::People#updated_or_created` **method**
433
- - Scoping all people that have been updated as part of the current session.
434
- - Note that it includes also those that are hris excluded.
435
- - **Improvement** on `Eco::API::Common::Loaders::Base`
436
- - Should be able to call `log(:level) { "Some message" }`
437
-
438
- ### Changed
439
- - `Eco::Data::Locations::NodeLevel`
440
- - **removed** `#merge!` and `#override_upper_levels`
441
- - `#override_lower_levels` **renamed** to `#update_lower_levels`
442
- - `Eco::API::UseCases::DefaultCases::CsvToTree` use case
443
- - Moved to work with `Eco::Data::Locations::DSL`
444
- - **Removed** helpers double-ups.
445
- - Default workflow `on(:report)`: implementation of `-processed-people-to-csv`
446
- - It now only includes people created or updated as part of the current session.
447
- - **Improvement**: `Eco::API::Common::Loaders::Parser` made `serializer` method **not required**
448
- - This aims to use the default serializer definition
449
- - Made **inheritable** `parsing_phase` and `serializing_phase`
450
-
451
- ### Fixed
452
- - `Eco::Data::Locations::NodeLevel#update_lower_levels`
453
- - To use `#raw_latest_consecutive_top_empty_level`
454
- - Compact from first filled in `tags_array` onwards (preserve empty tags at the beginning for clean validation)
455
- - `Eco::Data::Locations::NodeLevel::Cleaner`
456
- - `#tidy_nodes` **gap** calculation is scoped against previous node (common ancestors)
457
- - `#fill_in_parents` to give feedback on unexpected parental relationship
458
- - `Eco::API::UseCases::DefaultCases::Samples::Sftp`
459
- - Prevent double slashed paths
478
+
479
+ - This is a fix to this scenario.
480
+
481
+ ### Added
482
+
483
+ - `Eco::Data::Locations::NodeLevel#raw_latest_consecutive_top_empty_level`
484
+ - To scope the missing ancestors (up to what level)
485
+ - `Eco::API::UseCases::DefaultCases::Samples::Sftp`
486
+ - Options for `remote_subfolder`, `remote_target_folder` and `remote_folder`
487
+ - `Eco::API::Organization::People#updated_or_created` **method**
488
+ - Scoping all people that have been updated as part of the current session.
489
+ - Note that it includes also those that are hris excluded.
490
+ - **Improvement** on `Eco::API::Common::Loaders::Base`
491
+ - Should be able to call `log(:level) { "Some message" }`
492
+
493
+ ### Changed
494
+
495
+ - `Eco::Data::Locations::NodeLevel`
496
+ - **removed** `#merge!` and `#override_upper_levels`
497
+ - `#override_lower_levels` **renamed** to `#update_lower_levels`
498
+ - `Eco::API::UseCases::DefaultCases::CsvToTree` use case
499
+ - Moved to work with `Eco::Data::Locations::DSL`
500
+ - **Removed** helpers double-ups.
501
+ - Default workflow `on(:report)`: implementation of `-processed-people-to-csv`
502
+ - It now only includes people created or updated as part of the current session.
503
+ - **Improvement**: `Eco::API::Common::Loaders::Parser` made `serializer` method **not required**
504
+ - This aims to use the default serializer definition
505
+ - Made **inheritable** `parsing_phase` and `serializing_phase`
506
+
507
+ ### Fixed
508
+
509
+ - `Eco::Data::Locations::NodeLevel#update_lower_levels`
510
+ - To use `#raw_latest_consecutive_top_empty_level`
511
+ - Compact from first filled in `tags_array` onwards (preserve empty tags at the beginning for clean validation)
512
+ - `Eco::Data::Locations::NodeLevel::Cleaner`
513
+ - `#tidy_nodes` **gap** calculation is scoped against previous node (common ancestors)
514
+ - `#fill_in_parents` to give feedback on unexpected parental relationship
515
+ - `Eco::API::UseCases::DefaultCases::Samples::Sftp`
516
+ - Prevent double slashed paths
460
517
 
461
518
  ## [2.5.8] - 2023-08-28
462
519
 
463
520
  ### Changed
464
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
465
- - Deafult prompt should be `Yes` on **remote**
521
+
522
+ - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
523
+ - Deafult prompt should be `Yes` on **remote**
466
524
 
467
525
  ## [2.5.7] - 2023-08-15
468
526
 
469
527
  ### Added
470
- - `Eco::API::Session::Config#tagtree_id=` allows to define a target structure id
471
- - This is for `live` retrieval of tagtree on people sync processes
472
- - It only makes sense if graphql credentials are configured
528
+
529
+ - `Eco::API::Session::Config#tagtree_id=` allows to define a target structure id
530
+ - This is for `live` retrieval of tagtree on people sync processes
531
+ - It only makes sense if graphql credentials are configured
473
532
 
474
533
  ## [2.5.6] - 2023-08-14
475
534
 
476
535
  ### Changed
477
- - `Eco::API::Session::Config::Tagtree#live_tree` remove memmoize tree: it now always trigger a query to the back-end
478
- - Better messaging to know what's going on.
536
+
537
+ - `Eco::API::Session::Config::Tagtree#live_tree` remove memmoize tree: it now always trigger a query to the back-end
538
+ - Better messaging to know what's going on.
479
539
 
480
540
  ### Fixed
481
- - `Eco::API::Session#live_tree` was not forwarding target structure id `id`
482
- - `Eco::Data::Locations::NodeLevel#override_lower_levels`
483
- - By **default** should only override empty upper levels
484
- - `Eco::Data::Locations::NodeLevel::Cleaner`
485
- - `#tidy_nodes` when **gap** (merged parent) identified, `level` is still correct
486
- - `Eco::Data::Locations::NodeLevel`
487
- - `#nodes_from_csv` correctly identify parent with big gaps
488
- - This fix ensures a correct normalization
489
- - `Eco::API::UseCases::GraphQL::Samples::Location::Command::Result`
490
- - **Batch remap tags** _built_ requires full path to keep from-filter specificity
491
- - This change also wraps into a new class the remap tags table.
541
+
542
+ - `Eco::API::Session#live_tree` was not forwarding target structure id `id`
543
+ - `Eco::Data::Locations::NodeLevel#override_lower_levels`
544
+ - By **default** should only override empty upper levels
545
+ - `Eco::Data::Locations::NodeLevel::Cleaner`
546
+ - `#tidy_nodes` when **gap** (merged parent) identified, `level` is still correct
547
+ - `Eco::Data::Locations::NodeLevel`
548
+ - `#nodes_from_csv` correctly identify parent with big gaps
549
+ - This fix ensures a correct normalization
550
+ - `Eco::API::UseCases::GraphQL::Samples::Location::Command::Result`
551
+ - **Batch remap tags** _built_ requires full path to keep from-filter specificity
552
+ - This change also wraps into a new class the remap tags table.
492
553
 
493
554
  ## [2.5.5] - 2023-08-03
494
555
 
495
556
  ### Added
496
- - `Eco::API::Organization::TagTree` - **added/improved methods**
497
- - `#as_json` new parameter `max_depth:` to be able to cut the tree
498
- - `#active_tree` new method to exclude archived nodes.
499
- - `#truncate` new method to obtain a tree cut to `max_depth:`
500
- - `Eco::API::Session::Config::Tagtree`: **exposed** `include_archived:` (a.k.a. `inludeArchivedNodes`).
501
- - This change states that `session.tagtree` does not retrieve archived nodes by default, while `session.live_tree` does retrieve archived nodes.
502
- - This change required an update on the `ecoportal-api-graphql` **gem**
557
+
558
+ - `Eco::API::Organization::TagTree` - **added/improved methods**
559
+ - `#as_json` new parameter `max_depth:` to be able to cut the tree
560
+ - `#active_tree` new method to exclude archived nodes.
561
+ - `#truncate` new method to obtain a tree cut to `max_depth:`
562
+ - `Eco::API::Session::Config::Tagtree`: **exposed** `include_archived:` (a.k.a. `inludeArchivedNodes`).
563
+ - This change states that `session.tagtree` does not retrieve archived nodes by default, while `session.live_tree` does retrieve archived nodes.
564
+ - This change required an update on the `ecoportal-api-graphql` **gem**
503
565
 
504
566
  ### Fixed
505
- - `Eco::API::Organization::TagTree#path` - dups the result (rather than exposing the internal path array)
567
+
568
+ - `Eco::API::Organization::TagTree#path` - dups the result (rather than exposing the internal path array)
506
569
 
507
570
  ## [2.5.4] - 2023-07-27
508
571
 
509
572
  ### Added
510
- - SFTP case helpers: `Eco::API::UseCases::GraphQL::Utils::Sftp`
511
- - `Eco::Data::Locations::NodeDiff` and `Eco::Data::Locations::NodeDiff::NodeDiffs`
512
- - Aim to identify changes in the locations structure
573
+
574
+ - SFTP case helpers: `Eco::API::UseCases::GraphQL::Utils::Sftp`
575
+ - `Eco::Data::Locations::NodeDiff` and `Eco::Data::Locations::NodeDiff::NodeDiffs`
576
+ - Aim to identify changes in the locations structure
513
577
 
514
578
  ### Changed
515
- - Some internal tidy up in `Eco::API::UseCases::GraphQL`
579
+
580
+ - Some internal tidy up in `Eco::API::UseCases::GraphQL`
516
581
 
517
582
  ## [2.5.3] - 2023-07-19
518
583
 
519
584
  ### Added
520
- - _GraphQL base case_ for **locations structure update**.
521
- - Refer to `Eco::API::UseCases::GraphQL::Samples::LocationCommands`
522
- - See also `Eco::API::UseCases::GraphQL`. **Added** `Helpers` and `Samples`
523
- - `Eco::Data::Locations` helpers
524
- - **Converters**: it offers a `DSL` (see `Eco::Data::Locations::DSL`) manage as input/output:
525
- 1. CSV files with locations in two basic formats (list of nodes and hierarchy of locations)
526
- 2. This comes with integrity checkers to ensure the input data files are correct (warnings)
527
- 3. It also allows to convert to/from an organization locations structure and csv files.
528
- - Making generic the helpers of `Eco::API::UseCases::DefaultCases::CsvToTree`
529
- - The prospect is to move to the new/reviewed helpers at some stage (so remove the old helpers)
530
- - This comes with a series of **converters** and **parsers** to allow two basic forms of input/output:
531
- - CSV with list of nodes (`id`, `name`, `parent_id`)
532
- - CSV of the actual tree (each column is one level of the tree)
533
- - `Eco::API::Organization::TagTree` - **added/improved methods**
534
- - **added** shortcuts: `parent_id`, `parent_name`
535
- - **added** filters: `select`, `reject`
536
- - **improved** `as_json`:
537
- 1. new parameter `include_children`
538
- 2. Hash keys | Header names to `HEADER` column
539
- - **added** `as_nodes_json` to obtain a plain list (rather than hierarchical `as_json`)
540
- - `Eco::CSV::Table`
541
- - **added** `#add_index_column` to numerate the rows in a new column
542
- - **improved** `#add_column` with new parameter `pos`
543
- - **added** `#nil_blank_cells` and `#nil_blank_cells!`
544
- - `Eco::Language::BasicLogger` brief extensible logger.
545
-
546
- ### Changed
547
- - Refactored `Eco::API::Session::Logger` inheriting from `Eco::Language::BasicLogger`
548
-
549
- ### Fixed
550
- - Live tree retrieval. Allow to specify locations structure `id`, `kargs` & `block`.
551
- - `Eco::API::Session#live_tree` allow `id`, `kargs` & `block`, **fix** pass `include_archived`
552
- - `Eco::API::Session::Config#live_tree` allow `id`, `kargs` & `block`
553
- - When `id` is given, it uses `tagtree_config#live_tree_get`
554
- - **fixed** neither `kargs` nor `include_archived` where defined
555
- - `Eco::API::Session::Config::Tagtree` methods
556
- - `#live_trees` allow `kargs`
557
- - `#live_tree_get` **added**: it does not memoize
558
- - `#live_tree` allow `id` and `kargs`
559
- - **fixed** `include_archived` nodes should not be redirected to `live_trees` as in the latter this parameter has a different meaning (it refers to archived structures).
560
- - **Important note**: the `ecoportal-api-graphql` gem, at the moment always retrieves archived nodes. This makes the `include_archived` argument non-functional. However, at some stage this will be changed and everything should be sorted out by then.
585
+
586
+ - _GraphQL base case_ for **locations structure update**.
587
+ - Refer to `Eco::API::UseCases::GraphQL::Samples::LocationCommands`
588
+ - See also `Eco::API::UseCases::GraphQL`. **Added** `Helpers` and `Samples`
589
+ - `Eco::Data::Locations` helpers
590
+ - **Converters**: it offers a `DSL` (see `Eco::Data::Locations::DSL`) manage as input/output:
591
+ 1. CSV files with locations in two basic formats (list of nodes and hierarchy of locations)
592
+ 2. This comes with integrity checkers to ensure the input data files are correct (warnings)
593
+ 3. It also allows to convert to/from an organization locations structure and csv files.
594
+ - Making generic the helpers of `Eco::API::UseCases::DefaultCases::CsvToTree`
595
+ - The prospect is to move to the new/reviewed helpers at some stage (so remove the old helpers)
596
+ - This comes with a series of **converters** and **parsers** to allow two basic forms of input/output:
597
+ - CSV with list of nodes (`id`, `name`, `parent_id`)
598
+ - CSV of the actual tree (each column is one level of the tree)
599
+ - `Eco::API::Organization::TagTree` - **added/improved methods**
600
+ - **added** shortcuts: `parent_id`, `parent_name`
601
+ - **added** filters: `select`, `reject`
602
+ - **improved** `as_json`:
603
+ 1. new parameter `include_children`
604
+ 2. Hash keys | Header names to `HEADER` column
605
+ - **added** `as_nodes_json` to obtain a plain list (rather than hierarchical `as_json`)
606
+ - `Eco::CSV::Table`
607
+ - **added** `#add_index_column` to numerate the rows in a new column
608
+ - **improved** `#add_column` with new parameter `pos`
609
+ - **added** `#nil_blank_cells` and `#nil_blank_cells!`
610
+ - `Eco::Language::BasicLogger` brief extensible logger.
611
+
612
+ ### Changed
613
+
614
+ - Refactored `Eco::API::Session::Logger` inheriting from `Eco::Language::BasicLogger`
615
+
616
+ ### Fixed
617
+
618
+ - Live tree retrieval. Allow to specify locations structure `id`, `kargs` & `block`.
619
+ - `Eco::API::Session#live_tree` allow `id`, `kargs` & `block`, **fix** pass `include_archived`
620
+ - `Eco::API::Session::Config#live_tree` allow `id`, `kargs` & `block`
621
+ - When `id` is given, it uses `tagtree_config#live_tree_get`
622
+ - **fixed** neither `kargs` nor `include_archived` where defined
623
+ - `Eco::API::Session::Config::Tagtree` methods
624
+ - `#live_trees` allow `kargs`
625
+ - `#live_tree_get` **added**: it does not memoize
626
+ - `#live_tree` allow `id` and `kargs`
627
+ - **fixed** `include_archived` nodes should not be redirected to `live_trees` as in the latter this parameter has a different meaning (it refers to archived structures).
628
+ - **Important note**: the `ecoportal-api-graphql` gem, at the moment always retrieves archived nodes. This makes the `include_archived` argument non-functional. However, at some stage this will be changed and everything should be sorted out by then.
561
629
 
562
630
  ## [2.5.2] - 2023-06-23
563
631
 
564
632
  ### Added
565
- - `Eco::API::Session::Config::Workflow#exit_handle`
566
- - Allows to define a callback on `SystemExit` (`exit` call).
633
+
634
+ - `Eco::API::Session::Config::Workflow#exit_handle`
635
+ - Allows to define a callback on `SystemExit` (`exit` call).
567
636
 
568
637
  ### Fixed
569
- - `Eco::API::Session::Config::Workflow` on `SystemExit` preserve original exit `status` value (i.e. `0`, `1`)
570
- - It was changing an `exit 1` to be an `exit 0`
571
- - Default Workflow. `exit 0` when no operation specified (rather than `exit 1`).
638
+
639
+ - `Eco::API::Session::Config::Workflow` on `SystemExit` preserve original exit `status` value (i.e. `0`, `1`)
640
+ - It was changing an `exit 1` to be an `exit 0`
641
+ - Default Workflow. `exit 0` when no operation specified (rather than `exit 1`).
572
642
 
573
643
  ## [2.5.1] - 2023-06-06
574
644
 
575
645
  ### Added
576
- - `Eco::API::Common::Session:SFTP#host` method
577
- - New options to control csv headers check (`Eco::API::Common::People::DefaultParsers::CSVParser`)
578
- - `Eco::API::Common::Loaders::CaseBase` add to the setter the `@usecase`
579
- - Implemented via `Eco::API::UseCases::UseCase`
646
+
647
+ - `Eco::API::Common::Session:SFTP#host` method
648
+ - New options to control csv headers check (`Eco::API::Common::People::DefaultParsers::CSVParser`)
649
+ - `Eco::API::Common::Loaders::CaseBase` add to the setter the `@usecase`
650
+ - Implemented via `Eco::API::UseCases::UseCase`
580
651
 
581
652
  ### Changed
582
- - Dry out dependency loading.
583
- - `ecoportal-api` **gem** remains as eager loading.
584
- - Patch `Ecoportal::API::V1::Person` with `include`
585
- - Upgraded `ecoportal-api-graphql` **gem**
586
- - `Eco::API::Common::People::PersonEntryAttributeMapper`
587
- - Switched reversed attr defs warning to `info` logging level.
588
- - `Eco::API::Common::DefaultParsers::SelectParser`
589
- - When there is dependency with the hash of options, it should return nil when the option is unknown.
653
+
654
+ - Dry out dependency loading.
655
+ - `ecoportal-api` **gem** remains as eager loading.
656
+ - Patch `Ecoportal::API::V1::Person` with `include`
657
+ - Upgraded `ecoportal-api-graphql` **gem**
658
+ - `Eco::API::Common::People::PersonEntryAttributeMapper`
659
+ - Switched reversed attr defs warning to `info` logging level.
660
+ - `Eco::API::Common::DefaultParsers::SelectParser`
661
+ - When there is dependency with the hash of options, it should return nil when the option is unknown.
590
662
 
591
663
  ### Fixed
592
- - Tidied up file encoding when getting content.
593
- - This fixes `Eco::CSV::read`
594
- - `Eco::API::Common::People::DefaultParsers::CSVParser` made some refactor.
664
+
665
+ - Tidied up file encoding when getting content.
666
+ - This fixes `Eco::CSV::read`
667
+ - `Eco::API::Common::People::DefaultParsers::CSVParser` made some refactor.
595
668
 
596
669
  ## [2.4.9] - 2023-04-17
597
670
 
598
671
  ### Added
599
- - `Eco::API::UseCases#source_object` to retrieve the original use case definition object
600
- - This allows the `Eco::API::UseCases::UseCase` object to access the object that defined the usecase and initialize `@session`.
601
- - It now can know what `type` of use case created the `@callback`
602
- - Next steps with this may be play a bit with the `aritity` of the `@callback` block, allow parsers to skip the serializer definition (so the default one runs), etc.
603
- - `Eco::API::Common::Loaders::Base` the above feature allowed to initialize the `@options`, and therefore...
604
- - `#options` method **added** (based on `@options` instance var)
672
+
673
+ - `Eco::API::UseCases#source_object` to retrieve the original use case definition object
674
+ - This allows the `Eco::API::UseCases::UseCase` object to access the object that defined the usecase and initialize `@session`.
675
+ - It now can know what `type` of use case created the `@callback`
676
+ - Next steps with this may be play a bit with the `aritity` of the `@callback` block, allow parsers to skip the serializer definition (so the default one runs), etc.
677
+ - `Eco::API::Common::Loaders::Base` the above feature allowed to initialize the `@options`, and therefore...
678
+ - `#options` method **added** (based on `@options` instance var)
605
679
 
606
680
  ### Changed
607
- - `Eco::API::Common::Loaders::Base`
608
- - `#session` method is based on `@session` instance var, which allows to override without having to redefine `session` (`attr_reader :session` is no longer necessary)
609
- - Softened max version of **gem** dependencies
610
- - Upgraded self-managed **gem** dependencies
681
+
682
+ - `Eco::API::Common::Loaders::Base`
683
+ - `#session` method is based on `@session` instance var, which allows to override without having to redefine `session` (`attr_reader :session` is no longer necessary)
684
+ - Softened max version of **gem** dependencies
685
+ - Upgraded self-managed **gem** dependencies
611
686
 
612
687
  ### Fixed
613
- - `Eco::API::Common::ClassAutoLoader::autoload_children`
614
- - Skip `singleton_classes`
688
+
689
+ - `Eco::API::Common::ClassAutoLoader::autoload_children`
690
+ - Skip `singleton_classes`
615
691
 
616
692
  ## [2.4.8] - 2023-04-03
617
693
 
618
694
  ### Added
619
- - `Eco::API::Organization::TagTree#ancestors` returns the ancestor nodes.
695
+
696
+ - `Eco::API::Organization::TagTree#ancestors` returns the ancestor nodes.
620
697
 
621
698
  ## [2.4.7] - 2023-04-03
622
699
 
623
700
  ### Added
624
- - `Eco::Data::Hashes::ArrayDiff#diffs?`
625
- - `Eco::API::Organization::TagTree` added methods:
626
- - `#source` => to expose the original doc
627
- - `#all_nodes` => to implement the block call
701
+
702
+ - `Eco::Data::Hashes::ArrayDiff#diffs?`
703
+ - `Eco::API::Organization::TagTree` added methods:
704
+ - `#source` => to expose the original doc
705
+ - `#all_nodes` => to implement the block call
628
706
 
629
707
  ### Changed
630
- - Upgraded `ecoportal-api-graphql` **gem**
708
+
709
+ - Upgraded `ecoportal-api-graphql` **gem**
631
710
 
632
711
  ### Fixed
633
- - `Eco::API::Session::Config::Api` **new `graphql` api** was missing `host`
634
- - `Eco::API::UseCases::DefaultCases::CsvToTree::Helper`
635
- - `#nodes_from_csv` assumed unique top level tag and not present
636
- - This fix completes this feature (as top level tags were not there)
712
+
713
+ - `Eco::API::Session::Config::Api` **new `graphql` api** was missing `host`
714
+ - `Eco::API::UseCases::DefaultCases::CsvToTree::Helper`
715
+ - `#nodes_from_csv` assumed unique top level tag and not present
716
+ - This fix completes this feature (as top level tags were not there)
637
717
 
638
718
  ## [2.4.6] - 2023-04-02
639
719
 
640
720
  ### Added
641
- - `Eco::API::Organization::TagTree` added support for `archived_token`
642
- - Added support for `block` in
643
- - `Eco::API::Session#live_tree`
644
- - `Eco::API::Session::Config::Tagtree` in `#live_trees` and `live_tree`
721
+
722
+ - `Eco::API::Organization::TagTree` added support for `archived_token`
723
+ - Added support for `block` in
724
+ - `Eco::API::Session#live_tree`
725
+ - `Eco::API::Session::Config::Tagtree` in `#live_trees` and `live_tree`
645
726
 
646
727
  ### Changed
647
- - Upgraded `ecoportal-api-graphql` **gem**
648
728
 
729
+ - Upgraded `ecoportal-api-graphql` **gem**
649
730
 
650
731
  ## [2.4.5] - 2023-03-31
651
732
 
652
733
  ### Added
653
- - `Eco::API::Organization::TagTree` support for `archived` and `weight` properties
654
- - `Eco::Data::Hashes::ArrayDiff` and `Eco::Data::Hashes::DiffResult`
655
- - Enable easy comparison of array of hashes
656
- - Input data can be diverse
734
+
735
+ - `Eco::API::Organization::TagTree` support for `archived` and `weight` properties
736
+ - `Eco::Data::Hashes::ArrayDiff` and `Eco::Data::Hashes::DiffResult`
737
+ - Enable easy comparison of array of hashes
738
+ - Input data can be diverse
657
739
 
658
740
  ### Fixed
659
- - `Eco::API::UseCases::DefaultCases::CsvToTree`
660
- - Fixed the missed alignment children that jump levels
661
- - `Eco::API::UseCases::DefaultCases::CsvToTree::Node`
662
- - `to_h`: attrs param was being ingnored.
663
741
 
742
+ - `Eco::API::UseCases::DefaultCases::CsvToTree`
743
+ - Fixed the missed alignment children that jump levels
744
+ - `Eco::API::UseCases::DefaultCases::CsvToTree::Node`
745
+ - `to_h`: attrs param was being ingnored.
664
746
 
665
747
  ## [2.4.4] - 2023-03-29
666
748
 
667
749
  ### Added
668
- - `Eco::API:Organization::TagTree`
669
- - Added **methods** `#each` and `#all_nodes` allow to loop through all nodes
670
- - Added `parent` to refer to the parent node.
750
+
751
+ - `Eco::API:Organization::TagTree`
752
+ - Added **methods** `#each` and `#all_nodes` allow to loop through all nodes
753
+ - Added `parent` to refer to the parent node.
671
754
 
672
755
  ### Changed
673
- - `Eco::API:Organization::TagTree` made **Enumerable**
756
+
757
+ - `Eco::API:Organization::TagTree` made **Enumerable**
674
758
 
675
759
  ### Fixed
676
- - `Eco:API::Session#live_tree` pass `enviro`
677
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
678
- - Fix typo on error message.
760
+
761
+ - `Eco:API::Session#live_tree` pass `enviro`
762
+ - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
763
+ - Fix typo on error message.
679
764
 
680
765
  ## [2.4.3] - 2023-03-23
681
766
 
682
767
  ### Fixed
683
- - `Eco::API::MicroCases#take_email_from_account` it was failing at the very (when restoring the original account)
684
- - Comes from back-end issue. Adding account with preferences.kiosk_enabled would return:
685
- - `{"errors"=>["account > preferences > kiosk_enabled is an unknown field"]}`
768
+
769
+ - `Eco::API::MicroCases#take_email_from_account` it was failing at the very (when restoring the original account)
770
+ - Comes from back-end issue. Adding account with preferences.kiosk_enabled would return:
771
+ - `{"errors"=>["account > preferences > kiosk_enabled is an unknown field"]}`
686
772
 
687
773
  ## [2.4.2] - 2023-03-17
688
774
 
689
775
  ### Fixed
690
- - `Eco::API::Common::People::EntryFactory#entries` _bom_ **encoding** (get back support)
776
+
777
+ - `Eco::API::Common::People::EntryFactory#entries` _bom_ **encoding** (get back support)
691
778
 
692
779
  ## [2.3.3] - 2023-03-16
693
780
 
694
781
  ### Added
695
- - Added new option `-input-encoding` to specify the encoding of an input file
782
+
783
+ - Added new option `-input-encoding` to specify the encoding of an input file
696
784
 
697
785
  ### Changed
698
- - `ecoportal-api` **gem** update
699
786
 
787
+ - `ecoportal-api` **gem** update
700
788
 
701
789
  ## [2.3.2] - 2023-03-10
702
790
 
703
791
  ### Fixed
704
- - upgraded core library gems:
705
- - `ecoportal-api`
792
+
793
+ - upgraded core library gems:
794
+ - `ecoportal-api`
706
795
 
707
796
  ## [2.3.1] - 2023-03-09
708
797
 
709
798
  ### Changed
710
- - upgraded core library gems:
711
- - `ecoportal-api`
712
- - `ecoportal-api-v2`
713
- - `ecoportal-api-graphql`
799
+
800
+ - upgraded core library gems:
801
+ - `ecoportal-api`
802
+ - `ecoportal-api-v2`
803
+ - `ecoportal-api-graphql`
714
804
 
715
805
  ## [2.2.5] - 2023-03-07
716
806
 
717
807
  ### Fixed
718
- - Make it, so it requires to have a locations structure with nodes (raise exception otherwise)
808
+
809
+ - Make it, so it requires to have a locations structure with nodes (raise exception otherwise)
719
810
 
720
811
  ## [2.2.4] - 2023-03-07
721
812
 
722
813
  ### Fixed
723
- - Logger object when logging from config
814
+
815
+ - Logger object when logging from config
724
816
 
725
817
  ## [2.2.3] - 2023-03-07
726
818
 
727
819
  ### Added
728
- - Logger info for live tree selected.
820
+
821
+ - Logger info for live tree selected.
729
822
 
730
823
  ### Changed
731
- - `Eco::API::Common::People::DefaultParsers::PolicyGroupsParser`
732
- - Should warn of unknown policy groups
824
+
825
+ - `Eco::API::Common::People::DefaultParsers::PolicyGroupsParser`
826
+ - Should warn of unknown policy groups
733
827
 
734
828
  ### Fixed
735
- - `Eco::API:Organization::TagTree` fix `defaults_tag` scoping
829
+
830
+ - `Eco::API:Organization::TagTree` fix `defaults_tag` scoping
736
831
 
737
832
  ## [2.2.2] - 2023-02-27
738
833
 
739
834
  ### Fixed
740
- - Typo in GraphQL client (`locationsStructures` should read `locationStructures`)
741
- - Multiple typos in new code
835
+
836
+ - Typo in GraphQL client (`locationsStructures` should read `locationStructures`)
837
+ - Multiple typos in new code
742
838
 
743
839
  ## [2.2.1] - 2023-02-24
744
840
 
745
841
  ### Added
746
- - `Ecoportal::API::V1::Person#contractor_organization_id`
747
- - **Support** for **Reporting Structures** (breaking change)
748
- - `Eco::API::UseCases::DefaultCases::CsvToTree` use case to generate tree json out of a csv
749
- - The output file can be fed to `Eco::API::Organization::TagTree`
842
+
843
+ - `Ecoportal::API::V1::Person#contractor_organization_id`
844
+ - **Support** for **Reporting Structures** (breaking change)
845
+ - `Eco::API::UseCases::DefaultCases::CsvToTree` use case to generate tree json out of a csv
846
+ - The output file can be fed to `Eco::API::Organization::TagTree`
750
847
 
751
848
  ### Changed
752
- - **Patch** `Ecoportal::API::V1::Person::VALID_TAG_REGEX` it now allows for dot `.`
753
- - update gem dependencies
849
+
850
+ - **Patch** `Ecoportal::API::V1::Person::VALID_TAG_REGEX` it now allows for dot `.`
851
+ - update gem dependencies
754
852
 
755
853
  ## [2.1.12] - 2022-11-30
756
854
 
757
855
  ### Fixed
758
- - `Eco::API::Session::Batch::Errors#str` remove double up on error message
759
- - wrong require
856
+
857
+ - `Eco::API::Session::Batch::Errors#str` remove double up on error message
858
+ - wrong require
760
859
 
761
860
  ## [2.1.11] - 2022-11-30
762
861
 
763
862
  ### Changed
764
- - Bring the `-set-supervisor` native case up to date
765
- - `Eco::API::Session::Batch::Errors#errors`
766
- - better error catching and description
863
+
864
+ - Bring the `-set-supervisor` native case up to date
865
+ - `Eco::API::Session::Batch::Errors#errors`
866
+ - better error catching and description
767
867
 
768
868
  ## [2.1.10] - 2022-11-30
769
869
 
770
870
  ### Fixed
771
- - `Eco::API::Session::Batch::Errors#errors`
772
- - include errors with no `error` property in body (i.e. `!response.success?`)
871
+
872
+ - `Eco::API::Session::Batch::Errors#errors`
873
+ - include errors with no `error` property in body (i.e. `!response.success?`)
773
874
 
774
875
  ## [2.1.9] - 2022-11-29
775
876
 
776
877
  ### Changed
777
- - upgrade `ecoportal-api-v2` **gem** dependency
778
- - upgrade `ecoportal-api-graphql` **gem** dependency
878
+
879
+ - upgrade `ecoportal-api-v2` **gem** dependency
880
+ - upgrade `ecoportal-api-graphql` **gem** dependency
779
881
 
780
882
  ### Fixed
781
- - `Eco::API::Session::Batch::Job`
782
- - Ability to skip prefilter of entries with no `id` on `:update`
783
- - Enhanced error tracking (bug resilience)
883
+
884
+ - `Eco::API::Session::Batch::Job`
885
+ - Ability to skip prefilter of entries with no `id` on `:update`
886
+ - Enhanced error tracking (bug resilience)
784
887
 
785
888
  ## [2.1.8] - 2022-11-18
786
889
 
787
890
  ### Added
788
- - `Eco::API::UseCases::OozeSamples::RegisterMigrationCase`
789
- - When in `dry-run` mode, it adds one line before creation feedback, so it is clear the feedback is about creation (i.e. none of the source entries got mistakenly updated)
790
- - **enhanced** `Eco::API::UseCases::OozeSamples::OozeBaseCase#with_fields`
791
- - It allows to optionally pass as first parameter a section or a stage (default: ooze)
891
+
892
+ - `Eco::API::UseCases::OozeSamples::RegisterMigrationCase`
893
+ - When in `dry-run` mode, it adds one line before creation feedback, so it is clear the feedback is about creation (i.e. none of the source entries got mistakenly updated)
894
+ - **enhanced** `Eco::API::UseCases::OozeSamples::OozeBaseCase#with_fields`
895
+ - It allows to optionally pass as first parameter a section or a stage (default: ooze)
792
896
 
793
897
  ### Changed
794
- - upgraded gem dependency `ecoportal-api-v2`
898
+
899
+ - upgraded gem dependency `ecoportal-api-v2`
795
900
 
796
901
  ## [2.1.7] - 2022-11-17
797
902
 
798
903
  ### Added
799
- - `Eco::API::UseCases::OozeSamples::RegisterMigrationCase` method `excluded_field_hooks`
800
- - This enables the ability to prevent fields from being paired/copied/written on
904
+
905
+ - `Eco::API::UseCases::OozeSamples::RegisterMigrationCase` method `excluded_field_hooks`
906
+ - This enables the ability to prevent fields from being paired/copied/written on
801
907
 
802
908
  ### Changed
803
- - **refactored** `#with_src_dst_field_pair` helper
804
- - from `Eco::API::UseCases::OozeSamples::HelpersMigration::Copying`
909
+
910
+ - **refactored** `#with_src_dst_field_pair` helper
911
+ - from `Eco::API::UseCases::OozeSamples::HelpersMigration::Copying`
805
912
 
806
913
  ## [2.1.6] - 2022-11-17
807
914
 
808
915
  ### Fixed
809
- - `Eco::API::UseCases::OozeSamples::Helpers::Shortcuts#to_i` (missing param on method)
810
- - `Eco::API::UseCases::OozeSamples::HelpersMigration::TypedFieldsPairing#multi_delete` typo
916
+
917
+ - `Eco::API::UseCases::OozeSamples::Helpers::Shortcuts#to_i` (missing param on method)
918
+ - `Eco::API::UseCases::OozeSamples::HelpersMigration::TypedFieldsPairing#multi_delete` typo
811
919
 
812
920
  ## [2.1.5] - 2022-11-17
813
921
 
814
922
  ### Added
815
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase` added creation count
816
- - Requires use of `#create_ooze(draft, template_id)`
817
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase` added method
818
- - `with_rescue` that prompts user to continue
819
- - this is for usage in child classes
820
- - new use case and helpers thereof `Eco::API::UseCases::OozeSamples::RegisterMigrationCase`
923
+
924
+ - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase` added creation count
925
+ - Requires use of `#create_ooze(draft, template_id)`
926
+ - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase` added method
927
+ - `with_rescue` that prompts user to continue
928
+ - this is for usage in child classes
929
+ - new use case and helpers thereof `Eco::API::UseCases::OozeSamples::RegisterMigrationCase`
821
930
 
822
931
  ### Changed
823
- - upgraded `ecoportal-api-v2` **gem**
824
- - **refactored** `Eco::API::UseCases::OozeSamples::Helpers::Shortcuts#same_string?`
932
+
933
+ - upgraded `ecoportal-api-v2` **gem**
934
+ - **refactored** `Eco::API::UseCases::OozeSamples::Helpers::Shortcuts#same_string?`
825
935
 
826
936
  ## [2.1.4] - 2022-10-20
827
937
 
828
938
  ### Added
829
- - `Eco::API::Common::Session::Mailer#mail` added parameters `cc` and `bcc`
939
+
940
+ - `Eco::API::Common::Session::Mailer#mail` added parameters `cc` and `bcc`
830
941
 
831
942
  ## [2.1.3] - 2022-10-11
832
943
 
833
944
  ### Added
834
- - `Eco::API::UseCases::OozeSamples::OozeBaseCase`
835
- - `with_fields`, `with_sections` and `add_field` accept an `entry` parameter
836
- - also did some internal refactor
945
+
946
+ - `Eco::API::UseCases::OozeSamples::OozeBaseCase`
947
+ - `with_fields`, `with_sections` and `add_field` accept an `entry` parameter
948
+ - also did some internal refactor
837
949
 
838
950
  ### Changed
839
- - Upgraded `ecoportal-api-v2` **gem**
951
+
952
+ - Upgraded `ecoportal-api-v2` **gem**
840
953
 
841
954
  ### Fixed
842
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
843
- - account for stages with updates within same entry
955
+
956
+ - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
957
+ - account for stages with updates within same entry
844
958
 
845
959
  ## [2.1.2] - 2022-09-29
846
960
 
847
961
  ### Added
848
- - `Ecoportal::API::Session::Config#live_tree` to retrieve the tagtree of the back-end
849
- - Requires `graphql` connection parameters
850
- - `Ecoportal::API::Session#live_tree` see above
962
+
963
+ - `Ecoportal::API::Session::Config#live_tree` to retrieve the tagtree of the back-end
964
+ - Requires `graphql` connection parameters
965
+ - `Ecoportal::API::Session#live_tree` see above
851
966
 
852
967
  ### Changed
853
- - `Ecoportal::API::Session::Config#tagtree` to use `#live_tree` if there isn't a `tagtree.json` file
854
- - upgraded **dependency** to `ecoportal-api-graphql` **gem**
855
- - upgraded **dependency** to `ecoportal-api-v2` **gem**
968
+
969
+ - `Ecoportal::API::Session::Config#tagtree` to use `#live_tree` if there isn't a `tagtree.json` file
970
+ - upgraded **dependency** to `ecoportal-api-graphql` **gem**
971
+ - upgraded **dependency** to `ecoportal-api-v2` **gem**
856
972
 
857
973
  ### Fixed
858
- - `Ecoportal::API::Session::Config::API#version_available?` **typo**
974
+
975
+ - `Ecoportal::API::Session::Config::API#version_available?` **typo**
859
976
 
860
977
  ## [2.1.1] - 2022-09-26
861
978
 
862
979
  ### Added
863
- - `Eco::API::Session::Config::Api#version_available?` to know if a version is available for use
864
- - `Eco::API::Session::Config::Apis`, added `#default_pass` and `#default_email` to use the `GraphQL` api.
980
+
981
+ - `Eco::API::Session::Config::Api#version_available?` to know if a version is available for use
982
+ - `Eco::API::Session::Config::Apis`, added `#default_pass` and `#default_email` to use the `GraphQL` api.
865
983
 
866
984
  ### Changed
867
- - upgraded **dependency** to `ecoportal-api-graphql` **gem**
868
- - upgraded **dependency** to `ecoportal-api-v2` **gem**
985
+
986
+ - upgraded **dependency** to `ecoportal-api-graphql` **gem**
987
+ - upgraded **dependency** to `ecoportal-api-v2` **gem**
869
988
 
870
989
  ## [2.0.68] - 2022-09-19
871
990
 
872
991
  ### Added
873
- - `Eco::API::UseCases::OozeSamples::OozeBaseCase`: **added** a couple of functions to support **page creation**: `#new_page` and `#create_page`
992
+
993
+ - `Eco::API::UseCases::OozeSamples::OozeBaseCase`: **added** a couple of functions to support **page creation**: `#new_page` and `#create_page`
874
994
 
875
995
  ### Changed
876
- - upgraded **dependency** to `ecoportal-api-graphql` **gem**
877
- - upgraded **dependency** to `ecoportal-api-v2` **gem**
996
+
997
+ - upgraded **dependency** to `ecoportal-api-graphql` **gem**
998
+ - upgraded **dependency** to `ecoportal-api-v2` **gem**
878
999
 
879
1000
  ### Fixed
880
- - `Eco::API::Session::Config::Api`, the `org_id` is **not** a required parameter for `APIv2`
1001
+
1002
+ - `Eco::API::Session::Config::Api`, the `org_id` is **not** a required parameter for `APIv2`
881
1003
 
882
1004
  ## [2.0.67] - 2022-09-15
883
1005
 
884
1006
  ### Added
885
- - **dependency** to `ecoportal-api-graphql` **gem**
886
- - Added integration for `GraphQL`
887
- - `session.api(version: :graphql)`
888
- - New base case `Eco::API::UseCases::GraphQL::Base` to create `GraphQL` use cases
1007
+
1008
+ - **dependency** to `ecoportal-api-graphql` **gem**
1009
+ - Added integration for `GraphQL`
1010
+ - `session.api(version: :graphql)`
1011
+ - New base case `Eco::API::UseCases::GraphQL::Base` to create `GraphQL` use cases
889
1012
 
890
1013
  ### Changed
891
- - `Eco::CSV#read` and `Eco::CSV#parse` delegating `nil` row removal to sublcass `Eco::CSV::Table`
892
- - **upgraded** dependency on `ecoportal-api-v2`
1014
+
1015
+ - `Eco::CSV#read` and `Eco::CSV#parse` delegating `nil` row removal to sublcass `Eco::CSV::Table`
1016
+ - **upgraded** dependency on `ecoportal-api-v2`
893
1017
 
894
1018
  ### Fixed
895
- - `Eco::API::Session::Config::SFTP#remote_folder` to have path separator always as `/`
896
- - `Eco::CSV::Table`
897
- - to delete rows with all `nil` values
898
- - to keep `header` when file comes only with `header` row (with `0` count)
1019
+
1020
+ - `Eco::API::Session::Config::SFTP#remote_folder` to have path separator always as `/`
1021
+ - `Eco::CSV::Table`
1022
+ - to delete rows with all `nil` values
1023
+ - to keep `header` when file comes only with `header` row (with `0` count)
899
1024
 
900
1025
  ## [2.0.66] - 2022-08-11
901
1026
 
902
1027
  ### Fixed
903
- - `Eco::API::UseCases::DefaultCases::Samples::Sftp` manage exception when trying to access remote folder
1028
+
1029
+ - `Eco::API::UseCases::DefaultCases::Samples::Sftp` manage exception when trying to access remote folder
904
1030
 
905
1031
  ## [2.0.65] - 2022-08-11
906
1032
 
907
1033
  ### Fixed
908
- - Typo of a fix
1034
+
1035
+ - Typo of a fix
909
1036
 
910
1037
  ## [2.0.63] - 2022-08-11
911
1038
 
912
1039
  ### Changed
913
- - `Eco::API::Session::Config::SFTP#remote_folder` to use native path builder
1040
+
1041
+ - `Eco::API::Session::Config::SFTP#remote_folder` to use native path builder
914
1042
 
915
1043
  ## [2.0.62] - 2022-07-15
916
1044
 
917
1045
  ### Added
918
- - SFTP **password** option
919
- - `Eco::API::Common::Session::Sftp` fetches from config
920
- - `Eco::API::Session::Config::Sftp#password`
1046
+
1047
+ - SFTP **password** option
1048
+ - `Eco::API::Common::Session::Sftp` fetches from config
1049
+ - `Eco::API::Session::Config::Sftp#password`
921
1050
 
922
1051
  ### Fixed
923
- - `Eco::API::UseCases::DefaultCases::CreateCase` had a typo
1052
+
1053
+ - `Eco::API::UseCases::DefaultCases::CreateCase` had a typo
924
1054
 
925
1055
  ## [2.0.61] - 2022-07-11
926
1056
 
927
1057
  ### Added
928
- - patch for `Ecoportal::API::Common::Client#host` exposed `host` property
929
- - `skip-header-checks` option
930
- - It prevents checks done in the `Eco::API::Common::People::DefaultParsers::CSVParser`
931
- - **Export Helpers** to be able to automate exports via `APIv2`
932
- - `Eco::API::UseCases::OozeSamples::Helpers::ExportableRegister`
933
- - `Eco::API::UseCases::OozeSamples::Helpers::ExportableOoze`
934
- - `Eco::API::UseCases::OozeCases::ExportRegisterCase` to export registers
935
- - First ooze native use case (besides the samples)
1058
+
1059
+ - patch for `Ecoportal::API::Common::Client#host` exposed `host` property
1060
+ - `skip-header-checks` option
1061
+ - It prevents checks done in the `Eco::API::Common::People::DefaultParsers::CSVParser`
1062
+ - **Export Helpers** to be able to automate exports via `APIv2`
1063
+ - `Eco::API::UseCases::OozeSamples::Helpers::ExportableRegister`
1064
+ - `Eco::API::UseCases::OozeSamples::Helpers::ExportableOoze`
1065
+ - `Eco::API::UseCases::OozeCases::ExportRegisterCase` to export registers
1066
+ - First ooze native use case (besides the samples)
936
1067
 
937
1068
  ### Changed
938
- - upgraded `ecoportal-api-v2` to version `0.8.30`
1069
+
1070
+ - upgraded `ecoportal-api-v2` to version `0.8.30`
939
1071
 
940
1072
  ### Fixed
941
- - `-entries-to-csv` case; option `-out` was not being used
942
- - `Eco::API::Common::People::Entries#export` made it so it creates one column per key
943
- - It was wrongly merging the entries assuming all of them had the same keys
944
- - This also fixes the `-entries-to-csv` case, which can be used with `entries-from` option to correctly merge multiple input files with no data loss
945
- - `Eco::API::UseCases::OozeSamples::RegisterExportCase`
946
- - On prompt to launch, it answers `Yes`
947
- - It correctly captures the `state` based on the stages `state`
948
- - It was not building the model
949
- - Optimized
950
- - It returns a `PageStage` (rather than `Page`), to ensure all supported properties are accessible (i.e. `uid`)
1073
+
1074
+ - `-entries-to-csv` case; option `-out` was not being used
1075
+ - `Eco::API::Common::People::Entries#export` made it so it creates one column per key
1076
+ - It was wrongly merging the entries assuming all of them had the same keys
1077
+ - This also fixes the `-entries-to-csv` case, which can be used with `entries-from` option to correctly merge multiple input files with no data loss
1078
+ - `Eco::API::UseCases::OozeSamples::RegisterExportCase`
1079
+ - On prompt to launch, it answers `Yes`
1080
+ - It correctly captures the `state` based on the stages `state`
1081
+ - It was not building the model
1082
+ - Optimized
1083
+ - It returns a `PageStage` (rather than `Page`), to ensure all supported properties are accessible (i.e. `uid`)
951
1084
 
952
1085
  ## [2.0.60] - 2022-07-01
953
1086
 
954
1087
  ### Fixed
955
- - `Ecoportal::API::V1::PersonDetails.key?` patched
1088
+
1089
+ - `Ecoportal::API::V1::PersonDetails.key?` patched
956
1090
 
957
1091
  ## [2.0.59] - 2022-06-07
958
1092
 
959
1093
  ### Added
960
- - `Eco::API::Organization::TagTree#leafs` new method to spot tags with no children.
1094
+
1095
+ - `Eco::API::Organization::TagTree#leafs` new method to spot tags with no children.
961
1096
 
962
1097
  ### Changed
963
- - `Eco::API::MicroCases#core_excluded`
964
- - when person is `new?`, you should still be able to exclude `filter_tags`
1098
+
1099
+ - `Eco::API::MicroCases#core_excluded`
1100
+ - when person is `new?`, you should still be able to exclude `filter_tags`
965
1101
 
966
1102
  ### Fixed
967
- - `Eco::API::Policies::DefaultPolicies::UserAccess`
968
- - `-exclude-account` should leave it untouched
1103
+
1104
+ - `Eco::API::Policies::DefaultPolicies::UserAccess`
1105
+ - `-exclude-account` should leave it untouched
969
1106
 
970
1107
  ## [2.0.58] - 2022-05-31
971
1108
 
972
1109
  ### Added
973
- - **Usecase**`Eco::API::UseCases::DefaultCases::ClearAbilitiesTransCase`
974
- - invokable with `clear-abilities`
975
- - `Eco::API::Session::Config::People` added
976
- - `default_login_method` helpers
977
- - `Eco::API::Session::Config#default_login_method=` added
978
- - `Eco::API::Common::Loaders::Base#abort` method to log an error and raise an exception
979
- - **patched** `Ecoportal::API::Internal::Person`
980
- - Added a couple of handy helpers: `#replace_doc` and `#replace_original_doc`
1110
+
1111
+ - **Usecase**`Eco::API::UseCases::DefaultCases::ClearAbilitiesTransCase`
1112
+ - invokable with `clear-abilities`
1113
+ - `Eco::API::Session::Config::People` added
1114
+ - `default_login_method` helpers
1115
+ - `Eco::API::Session::Config#default_login_method=` added
1116
+ - `Eco::API::Common::Loaders::Base#abort` method to log an error and raise an exception
1117
+ - **patched** `Ecoportal::API::Internal::Person`
1118
+ - Added a couple of handy helpers: `#replace_doc` and `#replace_original_doc`
981
1119
 
982
1120
  ### Changed
983
- - `Eco::API::Common::Session::SFTP#move` new parameter `override:` (default: `true`)
984
- - If there was an error, it would delete the destination remote file and retry to move the file
985
- - upgraded `ecoportal-api-v2` gem to `0.8.28`
986
- - `Eco::API::Organization::LoginProviders#login_provider`
987
- - Added support to fetch based on type (i.e. password, sso)
988
- - `Eco::API::Policies::DefaultPolicies::UserAccess`
989
- - Added support for `config.default_login_method`
1121
+
1122
+ - `Eco::API::Common::Session::SFTP#move` new parameter `override:` (default: `true`)
1123
+ - If there was an error, it would delete the destination remote file and retry to move the file
1124
+ - upgraded `ecoportal-api-v2` gem to `0.8.28`
1125
+ - `Eco::API::Organization::LoginProviders#login_provider`
1126
+ - Added support to fetch based on type (i.e. password, sso)
1127
+ - `Eco::API::Policies::DefaultPolicies::UserAccess`
1128
+ - Added support for `config.default_login_method`
990
1129
 
991
1130
  ### Fixed
992
- - `Eco::API::Common::People::EntryFactory`
993
- - Max allowed enconding errors was not working (it was just fixing all).
1131
+
1132
+ - `Eco::API::Common::People::EntryFactory`
1133
+ - Max allowed enconding errors was not working (it was just fixing all).
994
1134
 
995
1135
  ## [2.0.57] - 2022-04-29
996
1136
 
997
1137
  ### Changed
998
- - `Eco::API::UseCases::DefaultCases::HrisCase`
999
- - Made it so the `leavers` batch runs first
1000
- - This aims to prevent some errors such as `cyclic supervisor` or `email already taken`
1138
+
1139
+ - `Eco::API::UseCases::DefaultCases::HrisCase`
1140
+ - Made it so the `leavers` batch runs first
1141
+ - This aims to prevent some errors such as `cyclic supervisor` or `email already taken`
1001
1142
 
1002
1143
  ## [2.0.56] - 2022-04-25
1003
1144
 
1004
1145
  ### Added
1005
- - `Eco::API::UseCases::OozeSamples::OozeBaseCase#add_field_by_doc`
1006
- - Same as `#add_field` but using an existing _**doc**_ as a model
1146
+
1147
+ - `Eco::API::UseCases::OozeSamples::OozeBaseCase#add_field_by_doc`
1148
+ - Same as `#add_field` but using an existing _**doc**_ as a model
1007
1149
 
1008
1150
  ### Changed
1009
- - `ecoportal-api-v2` dependency upgrade
1010
- - `Eco::API::Common::Session::FileManager#file_content`
1011
- - added parameter `mode:` to options can be used as well
1012
- - `Eco::API::UseCases::OozeSamples::Helpers::Shortcuts#same_string?`
1013
- - Added parameter `mild:` to compare the strings with only alphabetic characters
1014
- - `Eco::API::UseCases::OozeSamples::OozeRunBaseCase`
1015
- - `#main` and `#process_ooze` methods were not obvious to use
1016
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase` slight change on the **`run` summary message**
1151
+
1152
+ - `ecoportal-api-v2` dependency upgrade
1153
+ - `Eco::API::Common::Session::FileManager#file_content`
1154
+ - added parameter `mode:` to options can be used as well
1155
+ - `Eco::API::UseCases::OozeSamples::Helpers::Shortcuts#same_string?`
1156
+ - Added parameter `mild:` to compare the strings with only alphabetic characters
1157
+ - `Eco::API::UseCases::OozeSamples::OozeRunBaseCase`
1158
+ - `#main` and `#process_ooze` methods were not obvious to use
1159
+ - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase` slight change on the **`run` summary message**
1017
1160
 
1018
1161
  ### Fixed
1019
- - `Eco::API::UseCases::OozeSamples::OozeBaseCase#update_ooze`
1020
- - Added call to `validate` also when we are on `dry-run` **mode**
1162
+
1163
+ - `Eco::API::UseCases::OozeSamples::OozeBaseCase#update_ooze`
1164
+ - Added call to `validate` also when we are on `dry-run` **mode**
1021
1165
 
1022
1166
  ## [2.0.55] - 2022-04-04
1023
1167
 
1024
1168
  ### Fixed
1025
- - `Eco::API::UseCases::DefaultCases::Samples::Sftp` should move the basename to Windows compatible chars.
1169
+
1170
+ - `Eco::API::UseCases::DefaultCases::Samples::Sftp` should move the basename to Windows compatible chars.
1026
1171
 
1027
1172
  ## [2.0.54] - 2022-04-04
1028
1173
 
1029
1174
  ### Added
1030
- - `Eco::API::UseCases::DefaultCases::Samples::Sftp` should tell where the files went in the local.
1175
+
1176
+ - `Eco::API::UseCases::DefaultCases::Samples::Sftp` should tell where the files went in the local.
1031
1177
 
1032
1178
  ## [2.0.53] - 2022-04-04
1033
1179
 
1034
1180
  ### Added
1035
- - `Eco::API::MicroCases#set_supervisor` prevent to set someone as supervisor of themselves.
1036
- - `Eco::API::UseCases::DefaultCases::Samples::Sftp` integration to modify the `source_folder`
1181
+
1182
+ - `Eco::API::MicroCases#set_supervisor` prevent to set someone as supervisor of themselves.
1183
+ - `Eco::API::UseCases::DefaultCases::Samples::Sftp` integration to modify the `source_folder`
1037
1184
 
1038
1185
  ### Changed
1039
- - upgrade `ecoportal-api` and `ecoportal-api-v2` dependencies
1186
+
1187
+ - upgrade `ecoportal-api` and `ecoportal-api-v2` dependencies
1040
1188
 
1041
1189
  ## [2.0.52] - 2022-03-04
1042
1190
 
1043
1191
  ### Added
1044
- - `Eco::API::UseCases::DefaultCases::CleanUnknownTags` include `default_tag` refresh
1192
+
1193
+ - `Eco::API::UseCases::DefaultCases::CleanUnknownTags` include `default_tag` refresh
1045
1194
 
1046
1195
  ### Fixed
1047
- - `Eco::Data::Files::Directory#dir_files` to be returned in alphabetic order
1196
+
1197
+ - `Eco::Data::Files::Directory#dir_files` to be returned in alphabetic order
1048
1198
 
1049
1199
  ## [2.0.51] - 2022-02-27
1050
1200
 
1051
1201
  ### Added
1052
- - `Eco::API::MicroCases#person_update!` launches an update against the Server for one person
1053
- - `Eco::API::MicroCases#take_email_from_account` with given an account associated to an `email` that we cannot take, it associates that account to a different email
1202
+
1203
+ - `Eco::API::MicroCases#person_update!` launches an update against the Server for one person
1204
+ - `Eco::API::MicroCases#take_email_from_account` with given an account associated to an `email` that we cannot take, it associates that account to a different email
1054
1205
 
1055
1206
  ## [2.0.50] - 2022-02-23
1056
1207
 
1057
1208
  ### Added
1058
- - Ability to configure delay between jobs and job groups
1059
- - `Eco::API::Session::Batch::Jobs`, `#delay_between_jobs`
1060
- - `Eco::API::Session::Batch::JobsGroups`, `#delay_between_groups`
1061
- - `Eco::API::Session::Config`, added methods `#delay_between_jobs` and `#delay_between_job_groups`
1062
- - New use case `Eco::API::UseCases::DefaultCases::TagPaths` to create a `csv` with all `tag` paths
1063
- - Its purpose is to ease the build of tag remaps
1064
- - Ideally, after remapping the tags of an org, you would want to fix the tag paths based on the current tagtree
1209
+
1210
+ - Ability to configure delay between jobs and job groups
1211
+ - `Eco::API::Session::Batch::Jobs`, `#delay_between_jobs`
1212
+ - `Eco::API::Session::Batch::JobsGroups`, `#delay_between_groups`
1213
+ - `Eco::API::Session::Config`, added methods `#delay_between_jobs` and `#delay_between_job_groups`
1214
+ - New use case `Eco::API::UseCases::DefaultCases::TagPaths` to create a `csv` with all `tag` paths
1215
+ - Its purpose is to ease the build of tag remaps
1216
+ - Ideally, after remapping the tags of an org, you would want to fix the tag paths based on the current tagtree
1065
1217
 
1066
1218
  ### Changed
1067
- - `workflow`, when no operation specified it logs as `info`, rather than `warn`
1219
+
1220
+ - `workflow`, when no operation specified it logs as `info`, rather than `warn`
1068
1221
 
1069
1222
  ## [2.0.49] - 2022-02-14
1070
1223
 
1071
1224
  ### Added
1072
- - `Eco::API::Session::Batch::RequestStats#message` now it shows which details have changed
1073
- - `Eco::API::UseCases::DefaultCases::ReinviteTransCase` the option `-force` will also send an invite to users that have accepted the invitation
1225
+
1226
+ - `Eco::API::Session::Batch::RequestStats#message` now it shows which details have changed
1227
+ - `Eco::API::UseCases::DefaultCases::ReinviteTransCase` the option `-force` will also send an invite to users that have accepted the invitation
1074
1228
 
1075
1229
  ## [2.0.48] - 2022-02-04
1076
1230
 
1077
1231
  ### Changed
1078
- - upgraded `ecoportal-api-v2` dependency
1232
+
1233
+ - upgraded `ecoportal-api-v2` dependency
1079
1234
 
1080
1235
  ### Fixed
1081
- - `Eco::API::Common::People::EntryFactory#get_file_content`
1082
- - Call to `String#scrub` to prevent _invalid byte sequence_ error by replacing those characters by their coding identifier
1083
- - This has been implemented with a max tolerance of 5 byte sequence errors
1084
- - Errors are logged (although could not get to identify the line :/)
1236
+
1237
+ - `Eco::API::Common::People::EntryFactory#get_file_content`
1238
+ - Call to `String#scrub` to prevent _invalid byte sequence_ error by replacing those characters by their coding identifier
1239
+ - This has been implemented with a max tolerance of 5 byte sequence errors
1240
+ - Errors are logged (although could not get to identify the line :/)
1085
1241
 
1086
1242
  ## [2.0.47] - 2022-02-03
1087
1243
 
1088
1244
  ### Added
1089
- - `Eco::API::UseCases::DefaultCases::CleanUnknownTags`
1090
- - It is possible to extend or override `register_tags`
1091
- - New command option `-include-register-tags` (will not ignore register tags; they will be removed too)
1092
- - `Eco::API::UseCases::DefaultCases::Samples::Sftp`
1093
- - Default sample case to list, get and archive SFTP remote files
1245
+
1246
+ - `Eco::API::UseCases::DefaultCases::CleanUnknownTags`
1247
+ - It is possible to extend or override `register_tags`
1248
+ - New command option `-include-register-tags` (will not ignore register tags; they will be removed too)
1249
+ - `Eco::API::UseCases::DefaultCases::Samples::Sftp`
1250
+ - Default sample case to list, get and archive SFTP remote files
1251
+
1094
1252
  ### Changed
1095
- - upgraded `ecoportal-api-v2` dependency
1253
+
1254
+ - upgraded `ecoportal-api-v2` dependency
1096
1255
 
1097
1256
  ### Fixed
1098
- - `Eco::API::Common::Session::S3Uploader#upload_file`: check if file exists before opening.
1257
+
1258
+ - `Eco::API::Common::Session::S3Uploader#upload_file`: check if file exists before opening.
1099
1259
 
1100
1260
  ## [2.0.46] - 2021-12-24
1101
1261
 
1102
1262
  ### Added
1103
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
1104
- - added counter of retrieved entries (to be able to compare with matched initially scoped results)
1105
- - added also counter of failed to retrieve oozes
1106
- - added also counter of double ups in search pagination
1107
- - counter for updated pages and pages that failed update
1108
- - `Eco::API::Session#enviro_name`: to identify in which environment we are running
1263
+
1264
+ - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
1265
+ - added counter of retrieved entries (to be able to compare with matched initially scoped results)
1266
+ - added also counter of failed to retrieve oozes
1267
+ - added also counter of double ups in search pagination
1268
+ - counter for updated pages and pages that failed update
1269
+ - `Eco::API::Session#enviro_name`: to identify in which environment we are running
1109
1270
 
1110
1271
  ### Changed
1111
- - upgraded `ecoportal-api-v2` dependency
1112
- - `Eco::API::UseCases::OozeSamples::OozeBaseCase#update_ooze`
1113
- - To return `false` if there was request made to the server
1114
- - To return `Reponse` if there was request made to the server
1272
+
1273
+ - upgraded `ecoportal-api-v2` dependency
1274
+ - `Eco::API::UseCases::OozeSamples::OozeBaseCase#update_ooze`
1275
+ - To return `false` if there was request made to the server
1276
+ - To return `Reponse` if there was request made to the server
1115
1277
 
1116
1278
  ### Fixed
1117
- - Changed the `workflow` in
1118
- - `on(:end)` to do not recache people if there were no `:sync` or `:transform` cases
1119
- - `Eco::API::UseCases::OozeSamples::OozeRunBaseCase#update_ooze`
1120
- - It's parent had parameter (it as a child should so)
1121
- - `Eco::API::UseCases::OozeSamples::OozeBaseCase#process_ooze`
1122
- - It was not retrieving the `ooze` unless explicitly passed as parameter
1123
- - This did not play well with child implementations that expect it to retrieve it based on `ooze_id` cli argument
1279
+
1280
+ - Changed the `workflow` in
1281
+ - `on(:end)` to do not recache people if there were no `:sync` or `:transform` cases
1282
+ - `Eco::API::UseCases::OozeSamples::OozeRunBaseCase#update_ooze`
1283
+ - It's parent had parameter (it as a child should so)
1284
+ - `Eco::API::UseCases::OozeSamples::OozeBaseCase#process_ooze`
1285
+ - It was not retrieving the `ooze` unless explicitly passed as parameter
1286
+ - This did not play well with child implementations that expect it to retrieve it based on `ooze_id` cli argument
1124
1287
 
1125
1288
  ## [2.0.45] - 2021-12-15
1126
1289
 
1127
1290
  ### Added
1128
- - `Eco::API::UseCases::OozeSamples::RegisterExportCase`
1291
+
1292
+ - `Eco::API::UseCases::OozeSamples::RegisterExportCase`
1129
1293
 
1130
1294
  ### Changed
1131
- - Upgrade `ecoportal-api` dependency
1132
- - Upgrade `ecoportal-api-v2` dependency
1295
+
1296
+ - Upgrade `ecoportal-api` dependency
1297
+ - Upgrade `ecoportal-api-v2` dependency
1133
1298
 
1134
1299
  ## [2.0.44] - 2021-11-25
1135
1300
 
1136
1301
  ### Changed
1137
- - Upgrade `ecoportal-api` dependency
1302
+
1303
+ - Upgrade `ecoportal-api` dependency
1138
1304
 
1139
1305
  ## [2.0.43] - 2021-11-25
1140
1306
 
1141
1307
  ### Added
1142
- - `Eco::API::Session::Batch::Job` added better **logging**
1308
+
1309
+ - `Eco::API::Session::Batch::Job` added better **logging**
1143
1310
 
1144
1311
  ### Changed
1145
- - `Eco::API::Session::Batch` added **resilience** and **recovery** to connection errors
1146
- - `Eco::API::Policies::DefaultPolicies::UserAccess` changed logging from `warn` to `info`.
1312
+
1313
+ - `Eco::API::Session::Batch` added **resilience** and **recovery** to connection errors
1314
+ - `Eco::API::Policies::DefaultPolicies::UserAccess` changed logging from `warn` to `info`.
1147
1315
 
1148
1316
  ## [2.0.42] - 2021-10-30
1149
1317
 
1150
1318
  ### Added
1151
- - `eco/api/organization/presets_values.json` added abilities:
1152
- - `visitor_management`
1153
- - `broadcast_notifications`
1154
- - `cross_register_reporting`
1155
- - Due to dev pipeline, the `ecoportal-api` version `0.8.4` hasn't been released
1156
- - This part of the current `eco-helpers` version depends on that gem version (to be upgraded later)
1157
- - Changed the `workflow` in
1158
- - `before(:post_launch, :usecases)` => post launch cases are not prevented for **partial** updates
1159
- - rectified message
1160
- - `run(:post_launch, :usecases)` => missing **people** error will log in `debug` level
1161
- - it won't break the script anymore (just prevent a post use case to be run)
1162
- - New use case `Eco::API::UseCases::DefaultCases::EntriesToCsv`: to export input entries as `csv`
1163
- - invokable via `-entries-to-csv`
1164
- - More errors:
1165
- - `Eco::API::Error::ExternalIdTaken`
1166
- - `Eco::API::Error::InternalServerError`
1167
- - **Added** option `processed-people-to-csv file.csv` to export a `csv` with the results of processing people
1168
- - This option allows to preview the final data when launching a `dry-run` (`-simulate`)
1169
- - **Added** ooze case sample `Eco::API::UseCases::OozeSamples::TargetOozesUpdateCase`
1170
- - Allows to retrieve the target entries based on a `csv`
1171
-
1172
- ### Changed
1173
- - Moved methods of `#person_ref`, `#get_attr` and `#get_row` as **class methods** of `Eco::API::Session::Batch::Feedback`
1174
- - `Eco::API::Session::Errors` methods above to use them via `Feedback` class
1175
- - `Eco::API::Session::Errors::ErrorCache`: **added** new property `response`
1176
- - `#by_type` added parameter `only_entries` to specify the output type
1177
- - `#errors` capture the `response` in the generated `ErrorCache` object
1178
-
1179
- ### Fixed
1180
- - `Eco::API::Session::Config::Workflow#run` to validate **callback** output class
1181
- - It should be a `Eco::API::UseCases::BaseIO`
1182
- - Prevent **uncreated people** to be present in queues or people refresh (if the server side worked perfectly, this contingency shouldn't be necessary):
1183
- - `Eco::API::Session::Batch::Job#processed_queue`
1184
- - Sanity-check to exclude people that are **new** and do not have `id` when the current `Job` is **not** of type `:create` (meaning that it was supposed to be created but failed and it probably doesn't exist on server-side)
1185
- - This prevents errors when trying to update/delete a person that most probably does not exist on the server.
1186
- - `Eco::API::MicroCases#people_refresh`
1187
- - Remove from people run-time object those that are **new** that are `dirty` (with pending changes)
1319
+
1320
+ - `eco/api/organization/presets_values.json` added abilities:
1321
+ - `visitor_management`
1322
+ - `broadcast_notifications`
1323
+ - `cross_register_reporting`
1324
+ - Due to dev pipeline, the `ecoportal-api` version `0.8.4` hasn't been released
1325
+ - This part of the current `eco-helpers` version depends on that gem version (to be upgraded later)
1326
+ - Changed the `workflow` in
1327
+ - `before(:post_launch, :usecases)` => post launch cases are not prevented for **partial** updates
1328
+ - rectified message
1329
+ - `run(:post_launch, :usecases)` => missing **people** error will log in `debug` level
1330
+ - it won't break the script anymore (just prevent a post use case to be run)
1331
+ - New use case `Eco::API::UseCases::DefaultCases::EntriesToCsv`: to export input entries as `csv`
1332
+ - invokable via `-entries-to-csv`
1333
+ - More errors:
1334
+ - `Eco::API::Error::ExternalIdTaken`
1335
+ - `Eco::API::Error::InternalServerError`
1336
+ - **Added** option `processed-people-to-csv file.csv` to export a `csv` with the results of processing people
1337
+ - This option allows to preview the final data when launching a `dry-run` (`-simulate`)
1338
+ - **Added** ooze case sample `Eco::API::UseCases::OozeSamples::TargetOozesUpdateCase`
1339
+ - Allows to retrieve the target entries based on a `csv`
1340
+
1341
+ ### Changed
1342
+
1343
+ - Moved methods of `#person_ref`, `#get_attr` and `#get_row` as **class methods** of `Eco::API::Session::Batch::Feedback`
1344
+ - `Eco::API::Session::Errors` methods above to use them via `Feedback` class
1345
+ - `Eco::API::Session::Errors::ErrorCache`: **added** new property `response`
1346
+ - `#by_type` added parameter `only_entries` to specify the output type
1347
+ - `#errors` capture the `response` in the generated `ErrorCache` object
1348
+
1349
+ ### Fixed
1350
+
1351
+ - `Eco::API::Session::Config::Workflow#run` to validate **callback** output class
1352
+ - It should be a `Eco::API::UseCases::BaseIO`
1353
+ - Prevent **uncreated people** to be present in queues or people refresh (if the server side worked perfectly, this contingency shouldn't be necessary):
1354
+ - `Eco::API::Session::Batch::Job#processed_queue`
1355
+ - Sanity-check to exclude people that are **new** and do not have `id` when the current `Job` is **not** of type `:create` (meaning that it was supposed to be created but failed and it probably doesn't exist on server-side)
1356
+ - This prevents errors when trying to update/delete a person that most probably does not exist on the server.
1357
+ - `Eco::API::MicroCases#people_refresh`
1358
+ - Remove from people run-time object those that are **new** that are `dirty` (with pending changes)
1188
1359
 
1189
1360
  ## [2.0.41] - 2021-10-06
1190
1361
 
1191
1362
  ### Fixed
1192
- - `Eco::API::Session::Batch::Job` `backup_update`
1193
- - Saved `requests` filename was overlapping due to only batch job type being used
1194
- - Now it uses the name of the batch job as well
1363
+
1364
+ - `Eco::API::Session::Batch::Job` `backup_update`
1365
+ - Saved `requests` filename was overlapping due to only batch job type being used
1366
+ - Now it uses the name of the batch job as well
1195
1367
 
1196
1368
  ## [2.0.40] - 2021-09-29
1197
1369
 
1198
1370
  ### Added
1199
- - Unique access point for `validation` via core case `Eco::API::UseCases::OozeSamples::OozeBaseCase#update_ooze`
1371
+
1372
+ - Unique access point for `validation` via core case `Eco::API::UseCases::OozeSamples::OozeBaseCase#update_ooze`
1200
1373
 
1201
1374
  ## [2.0.39] - 2021-09-28
1202
1375
 
1203
1376
  ### Changed
1204
- - `Eco::API::UseCases::OozeSamples::OozeBaseCase`
1205
- - Moved helpers from `Eco::API::UseCases::OozeSamples::OozeUpdateCase`
1377
+
1378
+ - `Eco::API::UseCases::OozeSamples::OozeBaseCase`
1379
+ - Moved helpers from `Eco::API::UseCases::OozeSamples::OozeUpdateCase`
1206
1380
 
1207
1381
  ### Fixed
1208
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
1209
- - fix launch condition to be `Y`
1210
- - fix `search` method call
1211
- - Changed the `workflow` to prevent re-cache of people when `people` was not used
1382
+
1383
+ - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
1384
+ - fix launch condition to be `Y`
1385
+ - fix `search` method call
1386
+ - Changed the `workflow` to prevent re-cache of people when `people` was not used
1212
1387
 
1213
1388
  ## [2.0.38] - 2021-09-07
1214
1389
 
1215
1390
  ### Added
1216
- - `Eco::CSV::Table` some more helpers to manage input `csv`s
1217
- - `#transform_headers` that allows to pass a block to decide the new name
1218
- - `#merge_same_header_names` that allows to deal with value of columns with same header name
1219
- - `#duplicated_header_names` that identifies repeated header names
1391
+
1392
+ - `Eco::CSV::Table` some more helpers to manage input `csv`s
1393
+ - `#transform_headers` that allows to pass a block to decide the new name
1394
+ - `#merge_same_header_names` that allows to deal with value of columns with same header name
1395
+ - `#duplicated_header_names` that identifies repeated header names
1220
1396
 
1221
1397
  ### Changed
1222
- - Changed the `workflow` to prevent re-cache of people when `people` was not used
1398
+
1399
+ - Changed the `workflow` to prevent re-cache of people when `people` was not used
1223
1400
 
1224
1401
  ## [2.0.37] - 2021-09-03
1225
1402
 
1226
1403
  ### Added
1404
+
1227
1405
  ### Changed
1228
1406
 
1229
1407
  ### Fixed
1230
- - `Eco::API::UseCases::OozeSamples::OozeBaseCase`
1231
- - `#update_ooze` only count dry run for changed pages (to have better feedack)
1232
- - stop downloading the people manager
1233
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
1234
- - prevent queuing non page objects
1408
+
1409
+ - `Eco::API::UseCases::OozeSamples::OozeBaseCase`
1410
+ - `#update_ooze` only count dry run for changed pages (to have better feedack)
1411
+ - stop downloading the people manager
1412
+ - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
1413
+ - prevent queuing non page objects
1235
1414
 
1236
1415
  ## [2.0.36] - 2021-08-31
1237
1416
 
1238
1417
  ### Fixed
1239
- - `Eco::API::UseCases::OozeSamples::OozeBaseCase`
1240
- - `#update_ooze` only count dry run for changed pages (to have better feedack)
1418
+
1419
+ - `Eco::API::UseCases::OozeSamples::OozeBaseCase`
1420
+ - `#update_ooze` only count dry run for changed pages (to have better feedack)
1241
1421
 
1242
1422
  ## [2.0.35] - 2021-08-30
1243
1423
 
1244
1424
  ### Added
1245
- - `Eco::API::UseCases::OozeSamples::OozeBaseCase`
1246
- - `#new_target` optional warning when switching `target`
1247
- - `block` that is called when switching target and there were unsaved changes
1248
- - `#dirty?` helper method to check if there are changes
1249
- - `#before_loading_new_target` hook to allow child classes to anticipate when the `target` is going to change
1425
+
1426
+ - `Eco::API::UseCases::OozeSamples::OozeBaseCase`
1427
+ - `#new_target` optional warning when switching `target`
1428
+ - `block` that is called when switching target and there were unsaved changes
1429
+ - `#dirty?` helper method to check if there are changes
1430
+ - `#before_loading_new_target` hook to allow child classes to anticipate when the `target` is going to change
1250
1431
 
1251
1432
  ### Changed
1252
- - `Eco::API::UseCases::OozeSamples::Helpers::Shortcuts#object_reference` improved reference text
1253
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
1254
- - added resilience when switching target (i.e. from one stage to another stage in same entry)
1255
- - added `batch_queue`
1433
+
1434
+ - `Eco::API::UseCases::OozeSamples::Helpers::Shortcuts#object_reference` improved reference text
1435
+ - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
1436
+ - added resilience when switching target (i.e. from one stage to another stage in same entry)
1437
+ - added `batch_queue`
1256
1438
 
1257
1439
  ### Fixed
1258
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
1259
- - actual `batch_size` updates
1260
- - actual safe switch of target (i.e. against another stage of same ooze)
1440
+
1441
+ - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
1442
+ - actual `batch_size` updates
1443
+ - actual safe switch of target (i.e. against another stage of same ooze)
1261
1444
 
1262
1445
  ## [2.0.34] - 2021-08-28
1263
1446
 
1264
1447
  ### Added
1265
- - `Eco::API::UseCases::OozeSamples::OozeBaseCase` refactored ooze base case
1266
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase` new case for full register update
1448
+
1449
+ - `Eco::API::UseCases::OozeSamples::OozeBaseCase` refactored ooze base case
1450
+ - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase` new case for full register update
1267
1451
 
1268
1452
  ### Changed
1269
- - `Eco::API::UseCases::OozeSamples::OozeRunBaseCase` made child of `OozeBaseCase` and simplified to its essential
1270
- - `Eco::API::UseCases::OozeSamples::OozeUpdateCase` remove unnecessary code and helpers that are now inherited from `OoozeBaseCase`
1271
- - `Eco::API::UseCases::OozeSamples::OozeFromDocCase` remove unnecessary code
1272
1453
 
1454
+ - `Eco::API::UseCases::OozeSamples::OozeRunBaseCase` made child of `OozeBaseCase` and simplified to its essential
1455
+ - `Eco::API::UseCases::OozeSamples::OozeUpdateCase` remove unnecessary code and helpers that are now inherited from `OoozeBaseCase`
1456
+ - `Eco::API::UseCases::OozeSamples::OozeFromDocCase` remove unnecessary code
1273
1457
 
1274
1458
  ## [2.0.33] - 2021-08-16
1275
1459
 
1276
1460
  ### Added
1277
- - `Eco::API::UseCases::OozeSamples::OozeFromDocCase` use case to abstract form from doc
1278
- - `docx` dependency
1279
- - A couple more of helpers for the Ooze Cases: `#titleize` & `#normalize_string`
1461
+
1462
+ - `Eco::API::UseCases::OozeSamples::OozeFromDocCase` use case to abstract form from doc
1463
+ - `docx` dependency
1464
+ - A couple more of helpers for the Ooze Cases: `#titleize` & `#normalize_string`
1280
1465
 
1281
1466
  ### Changed
1282
- - `ecoporta-api-v2` **gem** (upgrade dependency)
1467
+
1468
+ - `ecoporta-api-v2` **gem** (upgrade dependency)
1283
1469
 
1284
1470
  ### Fixed
1285
- - `Eco::API::UseCases::OozeSamples::OozeUpdateCase`, helper `with_stage`
1471
+
1472
+ - `Eco::API::UseCases::OozeSamples::OozeUpdateCase`, helper `with_stage`
1286
1473
 
1287
1474
  ## [2.0.32] - 2021-07-14
1288
1475
 
1289
1476
  ### Fixed
1290
- - `Eco::API::UseCases::OozeSamples::OozeUpdateCase` prompting user, fixed typo
1291
- - `Eco::API::Session::Batch::Job`: `include-excluded` again... typo.
1477
+
1478
+ - `Eco::API::UseCases::OozeSamples::OozeUpdateCase` prompting user, fixed typo
1479
+ - `Eco::API::Session::Batch::Job`: `include-excluded` again... typo.
1292
1480
 
1293
1481
  ## [2.0.31] - 2021-07-13
1294
1482
 
1295
1483
  ### Fixed
1296
- - `Eco::API::Session::Batch::Job`: `include-excluded` was triggering a type error.
1484
+
1485
+ - `Eco::API::Session::Batch::Job`: `include-excluded` was triggering a type error.
1297
1486
 
1298
1487
  ## [2.0.30] - 2021-07-08
1299
1488
 
1300
1489
  ### Added
1301
- * `Eco::API::Common::People::DefaultParsers::XLSParser` uses as default the `fields_map.json` to identify the headers.
1490
+
1491
+ - `Eco::API::Common::People::DefaultParsers::XLSParser` uses as default the `fields_map.json` to identify the headers.
1302
1492
 
1303
1493
  ### Fixed
1304
- * `Eco::API::Common::People::DefaultParsers::XLSParser` should return all `String` values
1494
+
1495
+ - `Eco::API::Common::People::DefaultParsers::XLSParser` should return all `String` values
1305
1496
 
1306
1497
  ## [2.0.29] - 2021-07-08
1307
1498
 
1308
1499
  ### Fixed
1309
- - `Eco::API::Common::People::PersonEntryAttributeMapper#details_attrs`
1310
- * What a mess this was doing to the `csv` export :/
1500
+
1501
+ - `Eco::API::Common::People::PersonEntryAttributeMapper#details_attrs`
1502
+ - What a mess this was doing to the `csv` export :/
1311
1503
 
1312
1504
  ## [2.0.27] - 2021-07-05
1313
1505
 
1314
1506
  ### Changed
1315
- - Parent class `Eco::API::UseCases::DefaultCases::ToCsvCase` shouldn't know header maps necessary for `Eco::API::UseCases::DefaultCases::ToCsvDetailedCase`
1316
- * Moved related header maps to `ToCsvDetailedCase`
1507
+
1508
+ - Parent class `Eco::API::UseCases::DefaultCases::ToCsvCase` shouldn't know header maps necessary for `Eco::API::UseCases::DefaultCases::ToCsvDetailedCase`
1509
+ - Moved related header maps to `ToCsvDetailedCase`
1317
1510
 
1318
1511
  ### Fixed
1319
- - `--help` should work fine now
1320
- - Attribute parsers that depended on indirect parser attributes were **not** included
1321
- - **changed** a couple of classes
1322
- - `Eco::API::Common::People::PersonEntryAttributeMapper`, where methods should receive `data` to re-scope if the data is available (most specifically `#internal_attrs`)
1323
- - `Eco::API::Common::People::PersonEntry`, where when setting the final values on `Person`, it should include any internal attribute that is present in the `final_entry` (the result of all the parsing process)
1324
- - `Eco::API::Common::People::DefaultParsers::CSVParser`
1325
- - indirect attributes that depended on other indirect attributes would show as missing even if they were active
1326
- - i.e. `name` depends on `first-name` & `surname`, **AND** `details-name` depends on `name`
1512
+
1513
+ - `--help` should work fine now
1514
+ - Attribute parsers that depended on indirect parser attributes were **not** included
1515
+ - **changed** a couple of classes
1516
+ - `Eco::API::Common::People::PersonEntryAttributeMapper`, where methods should receive `data` to re-scope if the data is available (most specifically `#internal_attrs`)
1517
+ - `Eco::API::Common::People::PersonEntry`, where when setting the final values on `Person`, it should include any internal attribute that is present in the `final_entry` (the result of all the parsing process)
1518
+ - `Eco::API::Common::People::DefaultParsers::CSVParser`
1519
+ - indirect attributes that depended on other indirect attributes would show as missing even if they were active
1520
+ - i.e. `name` depends on `first-name` & `surname`, **AND** `details-name` depends on `name`
1327
1521
 
1328
1522
  ## [2.0.26] - 2021-06-25
1329
1523
 
1330
1524
  ### Added
1331
- - `Eco::API::MicroCases#set_supervisor`, tries to keep in sync the `#subordinates` **count** of previous and new supervisor
1332
- - new **option** `-run-postlaunch` to run post launch cases, even when we run in `dry-run` mode
1333
- * when in `dry-run` it will **not** reload the people base of the session
1334
- - new **option** to append **new** entries to the `People` object
1335
- * **invokable** on **cli** via `-append-starters` (`{people: {append_created: true}}`)
1336
- * the following use cases include this option:
1337
- * `Eco::API::UseCases::DefaultCases::UpsertCase`
1338
- * `Eco::API::UseCases::DefaultCases::HrisCase`
1339
- * `Eco::API::UseCases::DefaultCases::CreateDetailsWithSupervisorCase`
1340
- * `Eco::API::UseCases::DefaultCases::CreateDetailsCase`
1341
- * `Eco::API::UseCases::DefaultCases::CreateCase`
1342
- * the option involves a new keyed argument `:append_created` in a couple of `MicroCases`
1343
- * `Eco::API::MicroCases#with_each`: where internally the search is performed against a copy of the `People` object.
1344
- * `Eco::API::MicroCases#with_each_starter`
1345
- * when `--help` is invoked option to filter the shown `-options`, `-usecases` and `filters` by a word contained in the option.
1346
- - **added** `csv` **header checks** for feed files, which entailed some changes:
1347
- * `Eco::API::Common::Loaders::Parser`
1348
- - new **subclass** `RequiredAttrs`, creatred when calling `.active_when_all` and `.active_when_any`
1349
- - **dependency** injection via `.dependencies` as `{required_attrs: RequiredAttrs}`
1350
- * **added** `Eco::API::Common::People::PersonParser#required_attrs` to offer all the `RequiredAttrs`, where defined
1351
- - the **new method** `#required_attrs` to expose the injected `RequiredAttrs`
1352
- * **new** keyed argument `check_headers:` in `Eco::API::Common::People::EntryFactory#entries`
1353
- - subsequent changes to accommodate the new param in `Eco::API::Session#csv_entries`
1354
- - `eco/cli/config/default/input` calls using this param to `true`
1355
- * `Eco::API::Common::People::DefaultParsers::CSVParser`
1356
- - added option `check_headers` via `dependencies` that enables the headers check
1357
- - it will now offer detailed warning messages on what can happen with the **missing headers**
1358
- * it will also list the **unknown header** names
1359
-
1360
- ### Changed
1361
- - `Eco::API::MicroCases#set_supervisor`, the order of the 2 first parameters
1362
- - `Eco::API::Organization::People`: internally `@by_id` cache Hash included `nil` values => **not** any more.
1363
- - removed **unused** methods on **patches** for `Ecoportal::API::V1::Person` and `Ecoportal::API::Internal::Person`
1364
- * specifically `#reset_account!` and `#consolidate_account!` as well as `#reset_details!` and `#consolidate_details!`
1365
- - internal changes in `Eco::API::Common::People::Entries#entry`
1366
- * **added** option to trigger `MultipleSearchResults` StandardError when multiple candiates are found.
1367
- * **removed** `nil` values from the `caches` (the Hashes to optimize the search)
1368
- - slight structure refactor of `Eco::API::Common::Loaders`
1369
- * moved base class to subfolder/namespace
1370
- * decoupled pure `Loader` logics to `Loaders::Base` and use case inheriance chain loader to `Loaders::CaseBase`
1371
- - `Eco::API::Session::BatchJob` the `post_launch`:
1372
- * sets the `id` to the `person` if it was **created** successfully
1373
- * when in `dry-run` it fakes the `id` with a counter
1374
- - `Eco::API::Common::People::PersonFactory` gets `subordinates` initialized to `0` (when **creating** a `new` person)
1525
+
1526
+ - `Eco::API::MicroCases#set_supervisor`, tries to keep in sync the `#subordinates` **count** of previous and new supervisor
1527
+ - new **option** `-run-postlaunch` to run post launch cases, even when we run in `dry-run` mode
1528
+ - when in `dry-run` it will **not** reload the people base of the session
1529
+ - new **option** to append **new** entries to the `People` object
1530
+ - **invokable** on **cli** via `-append-starters` (`{people: {append_created: true}}`)
1531
+ - the following use cases include this option:
1532
+ - `Eco::API::UseCases::DefaultCases::UpsertCase`
1533
+ - `Eco::API::UseCases::DefaultCases::HrisCase`
1534
+ - `Eco::API::UseCases::DefaultCases::CreateDetailsWithSupervisorCase`
1535
+ - `Eco::API::UseCases::DefaultCases::CreateDetailsCase`
1536
+ - `Eco::API::UseCases::DefaultCases::CreateCase`
1537
+ - the option involves a new keyed argument `:append_created` in a couple of `MicroCases`
1538
+ - `Eco::API::MicroCases#with_each`: where internally the search is performed against a copy of the `People` object.
1539
+ - `Eco::API::MicroCases#with_each_starter`
1540
+ - when `--help` is invoked option to filter the shown `-options`, `-usecases` and `filters` by a word contained in the option.
1541
+ - **added** `csv` **header checks** for feed files, which entailed some changes:
1542
+ - `Eco::API::Common::Loaders::Parser`
1543
+ - new **subclass** `RequiredAttrs`, creatred when calling `.active_when_all` and `.active_when_any`
1544
+ - **dependency** injection via `.dependencies` as `{required_attrs: RequiredAttrs}`
1545
+ - **added** `Eco::API::Common::People::PersonParser#required_attrs` to offer all the `RequiredAttrs`, where defined
1546
+ - the **new method** `#required_attrs` to expose the injected `RequiredAttrs`
1547
+ - **new** keyed argument `check_headers:` in `Eco::API::Common::People::EntryFactory#entries`
1548
+ - subsequent changes to accommodate the new param in `Eco::API::Session#csv_entries`
1549
+ - `eco/cli/config/default/input` calls using this param to `true`
1550
+ - `Eco::API::Common::People::DefaultParsers::CSVParser`
1551
+ - added option `check_headers` via `dependencies` that enables the headers check
1552
+ - it will now offer detailed warning messages on what can happen with the **missing headers**
1553
+ - it will also list the **unknown header** names
1554
+
1555
+ ### Changed
1556
+
1557
+ - `Eco::API::MicroCases#set_supervisor`, the order of the 2 first parameters
1558
+ - `Eco::API::Organization::People`: internally `@by_id` cache Hash included `nil` values => **not** any more.
1559
+ - removed **unused** methods on **patches** for `Ecoportal::API::V1::Person` and `Ecoportal::API::Internal::Person`
1560
+ - specifically `#reset_account!` and `#consolidate_account!` as well as `#reset_details!` and `#consolidate_details!`
1561
+ - internal changes in `Eco::API::Common::People::Entries#entry`
1562
+ - **added** option to trigger `MultipleSearchResults` StandardError when multiple candiates are found.
1563
+ - **removed** `nil` values from the `caches` (the Hashes to optimize the search)
1564
+ - slight structure refactor of `Eco::API::Common::Loaders`
1565
+ - moved base class to subfolder/namespace
1566
+ - decoupled pure `Loader` logics to `Loaders::Base` and use case inheriance chain loader to `Loaders::CaseBase`
1567
+ - `Eco::API::Session::BatchJob` the `post_launch`:
1568
+ - sets the `id` to the `person` if it was **created** successfully
1569
+ - when in `dry-run` it fakes the `id` with a counter
1570
+ - `Eco::API::Common::People::PersonFactory` gets `subordinates` initialized to `0` (when **creating** a `new` person)
1375
1571
 
1376
1572
  ## [2.0.25] - 2021-06-23
1377
1573
 
1378
1574
  ### Added
1379
- - `Eco::API::UseCases::DefaultCases::HrisCase` validation error to require `-schema-id` command line when there are people in schemas other than the active one
1575
+
1576
+ - `Eco::API::UseCases::DefaultCases::HrisCase` validation error to require `-schema-id` command line when there are people in schemas other than the active one
1380
1577
 
1381
1578
  ### Changed
1382
- - `Eco::API::Session::Batch::Job`
1383
- * for backwards compatibility `-include-only-excluded` should bring an options structure compatible with `-include-excluded`
1579
+
1580
+ - `Eco::API::Session::Batch::Job`
1581
+ - for backwards compatibility `-include-only-excluded` should bring an options structure compatible with `-include-excluded`
1384
1582
 
1385
1583
  ### Fixed
1386
- - `Eco::API::Session::Batch` fixed typo that would prevent `prompt_user` to work
1584
+
1585
+ - `Eco::API::Session::Batch` fixed typo that would prevent `prompt_user` to work
1387
1586
 
1388
1587
  ## [2.0.24] - 2021-06-22
1389
1588
 
1390
1589
  ### Added
1391
- - `Eco::API::Session::Batch::Job` made **native** `-include-excluded`
1392
- * also added new option `-include-only-excluded` to be able to only target people HRIS excluded
1590
+
1591
+ - `Eco::API::Session::Batch::Job` made **native** `-include-excluded`
1592
+ - also added new option `-include-only-excluded` to be able to only target people HRIS excluded
1393
1593
 
1394
1594
  ## [2.0.23] - 2021-06-22
1395
1595
 
1396
1596
  ### Added
1397
- - `Eco::API::Session::Batch::Job` **new** option (`-save-requests`) to save requests even if in `dry-run` (`-simulate`)
1597
+
1598
+ - `Eco::API::Session::Batch::Job` **new** option (`-save-requests`) to save requests even if in `dry-run` (`-simulate`)
1599
+
1398
1600
  ### Changed
1399
- - `Eco::API::Session::Batch::Job` new people won't create updates unless they have either details or account
1400
- * because that entry is not supposed to be created unless has account or details
1601
+
1602
+ - `Eco::API::Session::Batch::Job` new people won't create updates unless they have either details or account
1603
+ - because that entry is not supposed to be created unless has account or details
1401
1604
 
1402
1605
  ## [2.0.22] - 2021-06-18
1403
1606
 
1404
1607
  ### Added
1405
- - exposed `logger` in `BaseLoader` and
1406
- - support for multiple input files
1407
- * `Eco::API::Common::People::EntryFactory#entries`:
1408
- - refactored to allow multiple input files parsing
1409
- - moreover to `idx`, hash entries will get their `source_file`
1410
- * Input callback at `lib/eco/cli/config/default/input` refactored format detection and enabled folder input
1411
- * `SCR.get_file` language extended to also mention folder (not just file)
1412
- - support for `.xls` and `.xlsx` files
1413
- * `Eco::API::Common::People::DefaultParsers::XLSParser` the Excel files **parser**
1414
- * `Eco::API::Common::People::PersonParser` added `:xls` as an accepted format
1415
- * `Eco::API::Session#fields_mapper` exposed mapper through a method to allow **headers detection**
1416
- - The external names of the fields are the column headers of the input file
1417
- * `Eco::API::UseCases::BaseIO` when arguments validation rails, now it raises with specific `MissingParameter` error
1608
+
1609
+ - exposed `logger` in `BaseLoader` and
1610
+ - support for multiple input files
1611
+ - `Eco::API::Common::People::EntryFactory#entries`:
1612
+ - refactored to allow multiple input files parsing
1613
+ - moreover to `idx`, hash entries will get their `source_file`
1614
+ - Input callback at `lib/eco/cli/config/default/input` refactored format detection and enabled folder input
1615
+ - `SCR.get_file` language extended to also mention folder (not just file)
1616
+ - support for `.xls` and `.xlsx` files
1617
+ - `Eco::API::Common::People::DefaultParsers::XLSParser` the Excel files **parser**
1618
+ - `Eco::API::Common::People::PersonParser` added `:xls` as an accepted format
1619
+ - `Eco::API::Session#fields_mapper` exposed mapper through a method to allow **headers detection**
1620
+ - The external names of the fields are the column headers of the input file
1621
+ - `Eco::API::UseCases::BaseIO` when arguments validation rails, now it raises with specific `MissingParameter` error
1418
1622
 
1419
1623
  ### Changed
1420
- - dry out `BaseLoader` (only session is set as instance variable)
1421
- - removed `creek` **dependency** (it was not used anywhere in the gem)
1422
- * we just kept `roo` and `roo-xls`
1423
- - custom `Error` classes now all inherit from `StandardError` (rather than `Exception`)
1624
+
1625
+ - dry out `BaseLoader` (only session is set as instance variable)
1626
+ - removed `creek` **dependency** (it was not used anywhere in the gem)
1627
+ - we just kept `roo` and `roo-xls`
1628
+ - custom `Error` classes now all inherit from `StandardError` (rather than `Exception`)
1424
1629
 
1425
1630
  ## [2.0.21] - 2021-06-04
1426
1631
 
1427
1632
  ### Added
1428
- - `Eco::CSV::Table`, support to create the table out of an `Array<Hash>`
1429
- - This opens new methods to transform input Excel file to this data structure and unify input data structures.
1430
- - **new** use case `Eco::API::UseCases::DefaultCases::CleanUnknownTags` invokable via `clean-unknown-tags`
1633
+
1634
+ - `Eco::CSV::Table`, support to create the table out of an `Array<Hash>`
1635
+ - This opens new methods to transform input Excel file to this data structure and unify input data structures.
1636
+ - **new** use case `Eco::API::UseCases::DefaultCases::CleanUnknownTags` invokable via `clean-unknown-tags`
1431
1637
 
1432
1638
  ### Changed
1433
- - `Eco::API::Common::People::EntryFactory` slight **refactor** to boost better support for multiple input formats
1639
+
1640
+ - `Eco::API::Common::People::EntryFactory` slight **refactor** to boost better support for multiple input formats
1434
1641
 
1435
1642
  ## [2.0.20] - 2021-05-31
1436
1643
 
1437
1644
  ### Added
1438
- - **dependencies** to `creek`, `roo` and `roo-xls`
1439
- - **dependencies** to `hashdiff`
1440
- - `Eco::API::Session#parse_attribute` => added missing parameter `deps:`
1441
- - new option `-stdout [file]` to redirect the output to a file
1442
- - `Eco::CSV::Table`, **added** more helper methods `#group_by`, `#transform_values`, `#slice`, `#slice_columns`, `#delete_column`
1443
- - `Eco::API::Organization::TagTree` **added** more helper methods: `top?`, `tag=`, `as_json`, `dup`, `diff`
1645
+
1646
+ - **dependencies** to `creek`, `roo` and `roo-xls`
1647
+ - **dependencies** to `hashdiff`
1648
+ - `Eco::API::Session#parse_attribute` => added missing parameter `deps:`
1649
+ - new option `-stdout [file]` to redirect the output to a file
1650
+ - `Eco::CSV::Table`, **added** more helper methods `#group_by`, `#transform_values`, `#slice`, `#slice_columns`, `#delete_column`
1651
+ - `Eco::API::Organization::TagTree` **added** more helper methods: `top?`, `tag=`, `as_json`, `dup`, `diff`
1444
1652
 
1445
1653
  ### Fixed
1446
- - `Exception` patch: when `SystemStackError` there is not `backtrace` :/
1654
+
1655
+ - `Exception` patch: when `SystemStackError` there is not `backtrace` :/
1447
1656
 
1448
1657
  ## [2.0.19] - 2021-05-31
1449
1658
 
1450
1659
  ### Added
1451
- - Better error message for people searches & **offer** to select among the candidates:
1452
- - `Eco::API::Organization::People::MultipleSearchResults`, triggered from `Eco::API::Organization::People#find`
1453
- - `Eco::API::MicroCases#with_each` will offer the selection of candidates
1660
+
1661
+ - Better error message for people searches & **offer** to select among the candidates:
1662
+ - `Eco::API::Organization::People::MultipleSearchResults`, triggered from `Eco::API::Organization::People#find`
1663
+ - `Eco::API::MicroCases#with_each` will offer the selection of candidates
1454
1664
 
1455
1665
  ### Changed
1456
- - **renamed** and repurposed `Eco::API::Organization::PeopleAnalytics` to `PeopleSimilarity`
1666
+
1667
+ - **renamed** and repurposed `Eco::API::Organization::PeopleAnalytics` to `PeopleSimilarity`
1457
1668
 
1458
1669
  ### Fixed
1459
- - `Eco::Data::FuzzyMatch` adjustments for configuration propagation + some fixes
1460
- - Command option `-entries-from` can still be useful when used to obtain `-get-partial` of people base for `:export` use cases !!
1670
+
1671
+ - `Eco::Data::FuzzyMatch` adjustments for configuration propagation + some fixes
1672
+ - Command option `-entries-from` can still be useful when used to obtain `-get-partial` of people base for `:export` use cases !!
1461
1673
 
1462
1674
  ## [2.0.18] - 2021-05-25
1463
1675
 
1464
1676
  ### Added
1465
- - **`-one-off`** option to not having to type the `-api-key` every time you launch one-off scripts
1466
- - `-api-key` will store the key to the `./.env_one_off` file (supports update and multi-environment)
1677
+
1678
+ - **`-one-off`** option to not having to type the `-api-key` every time you launch one-off scripts
1679
+ - `-api-key` will store the key to the `./.env_one_off` file (supports update and multi-environment)
1467
1680
 
1468
1681
  ### Fixed
1469
- - patched `Exception#patch_full_message` to do not enter into a cyclic error rescue
1470
- - also rescue on `workflow.rescue`
1682
+
1683
+ - patched `Exception#patch_full_message` to do not enter into a cyclic error rescue
1684
+ - also rescue on `workflow.rescue`
1471
1685
 
1472
1686
  ## [2.0.17] - 2021-05-25
1473
1687
 
1474
1688
  Specific changes due to eP **release `1.5.9.70`** (_Policy Group Abilities_)
1475
- - And some improvements as well as new tools
1476
-
1477
- ### Added
1478
- - `Eco::API::Organization::PresetsFactory` added integrity validation for `person_abilities` ability
1479
- - `Eco::API::Organization::PresetsFactory`
1480
- - `#validate`: returns an `Array` with all the errors that a `permissions_custom` has
1481
- - `#valid?`: checks if a `permissions_custom` is valid
1482
- - `Eco::API::Organization::PeopleAnalytics`: a **helper** class to identify things in the People Manager and provide mitigation action methods to resolve them.
1483
- - Added dependencies to `fuzzy_match`, `amatch` and `jaro_winkler` **gems**
1484
- - `Eco::Data::FuzzyMatch` with string match helpers and a set of home-made generic libs.
1485
- - `Eco::API::Organization::PeopleAnalytics` to launch analysis on the People Manager
1486
- - `Eco::API::UseCases::DefaultCases::AnalysePeople` invokable via `-analyse-people`
1487
- - **new** -> a way to define a hierarchy of options (at least of 1 Level)
1488
- - `API::CLI::Config::OptionsSet`
1489
- - `API::CLI::Config::UseCases::CaseConfig`
1490
- - Integrated the new feature to the `--help` command and methods.
1491
- - **Usecase** `Eco::API::UseCases::DefaultCases::ResetLandingPageCase` added parameter to specify `-page-id`
1492
- - `Eco::API::Common::BaseLoader` new shortcut methods `#micro` (_MicroCases_), `#session` and `#config`
1493
- - At this stage of the execution workflow it uses `ASSETS.session`
1494
- - **Important note**: when the `#parser` or `#serializer` are called the `ASSETS.session` might already be linked to the specific invoked environment
1495
- - New method helpers in `Ecoporta::API::MicroCases`
1496
- - `preserve_filter_tags`, `preserve_default_tag` and `preserve_policy_groups`
1497
-
1498
- ### Changed
1499
- - upgraded dependency on `ecoportal-api` and `ecoportal-api-v2`
1500
- - **removed** `Eco::API::MicroCases#refresh_abilities`
1501
- - `Eco::API::MicroCases#set_account` **removed** `refresh_abilities`
1502
- - `Eco::API::MicroCases#append_usergroups` **removed** `refresh_abilities`
1503
- - **removed** _usecase_ `Eco::API::UseCases::DefaultCases::RefreshAbilitiesCase` (`-refresh-abilities`)
1504
- - `Eco::API::Policies::DefaultPolicies::UserAccess`: **removed** `refresh_abilities`
1505
- - **removed** `Eco::API::Session#new_preset`
1506
- - `Eco::API::Organization::PresetsFactory`
1507
- - **removed** `rspecs`
1508
- - `.new`: **removed** parameters `presets_custom` & `presets_map`
1509
- - **removed** constants `DEFAULT_CUSTOM`, and `DEFAULT_MAP`
1510
- - **removed** private methods `#presets_custom` and `#presets_map`
1511
- - **changed** private method `#compile` receives directly an array of `permissions_custom`
1512
- - `Eco::API::Session::Config` **removed** methods `#presets_custom=` & `presets_map=`
1513
- - `Eco::API::Session::Config::People` **removed** methods `#presets_custom=`, `#presets_map=`,`#presets_custom` & `#presets_map`
1514
- - **removed** `eco/api/organization/presets_reference.json`
1515
- - **moved** case-specific options to only be active when the user case is previously invoked in the command line.
1516
-
1517
- ### Fixed
1518
- - **handle** `Ecoportal::API:Errors::TimeOut` in `Eco::API::Session::Batch` by offering to retry.
1689
+
1690
+ - And some improvements as well as new tools
1691
+
1692
+ ### Added
1693
+
1694
+ - `Eco::API::Organization::PresetsFactory` added integrity validation for `person_abilities` ability
1695
+ - `Eco::API::Organization::PresetsFactory`
1696
+ - `#validate`: returns an `Array` with all the errors that a `permissions_custom` has
1697
+ - `#valid?`: checks if a `permissions_custom` is valid
1698
+ - `Eco::API::Organization::PeopleAnalytics`: a **helper** class to identify things in the People Manager and provide mitigation action methods to resolve them.
1699
+ - Added dependencies to `fuzzy_match`, `amatch` and `jaro_winkler` **gems**
1700
+ - `Eco::Data::FuzzyMatch` with string match helpers and a set of home-made generic libs.
1701
+ - `Eco::API::Organization::PeopleAnalytics` to launch analysis on the People Manager
1702
+ - `Eco::API::UseCases::DefaultCases::AnalysePeople` invokable via `-analyse-people`
1703
+ - **new** -> a way to define a hierarchy of options (at least of 1 Level)
1704
+ - `API::CLI::Config::OptionsSet`
1705
+ - `API::CLI::Config::UseCases::CaseConfig`
1706
+ - Integrated the new feature to the `--help` command and methods.
1707
+ - **Usecase** `Eco::API::UseCases::DefaultCases::ResetLandingPageCase` added parameter to specify `-page-id`
1708
+ - `Eco::API::Common::BaseLoader` new shortcut methods `#micro` (_MicroCases_), `#session` and `#config`
1709
+ - At this stage of the execution workflow it uses `ASSETS.session`
1710
+ - **Important note**: when the `#parser` or `#serializer` are called the `ASSETS.session` might already be linked to the specific invoked environment
1711
+ - New method helpers in `Ecoporta::API::MicroCases`
1712
+ - `preserve_filter_tags`, `preserve_default_tag` and `preserve_policy_groups`
1713
+
1714
+ ### Changed
1715
+
1716
+ - upgraded dependency on `ecoportal-api` and `ecoportal-api-v2`
1717
+ - **removed** `Eco::API::MicroCases#refresh_abilities`
1718
+ - `Eco::API::MicroCases#set_account` **removed** `refresh_abilities`
1719
+ - `Eco::API::MicroCases#append_usergroups` **removed** `refresh_abilities`
1720
+ - **removed** _usecase_ `Eco::API::UseCases::DefaultCases::RefreshAbilitiesCase` (`-refresh-abilities`)
1721
+ - `Eco::API::Policies::DefaultPolicies::UserAccess`: **removed** `refresh_abilities`
1722
+ - **removed** `Eco::API::Session#new_preset`
1723
+ - `Eco::API::Organization::PresetsFactory`
1724
+ - **removed** `rspecs`
1725
+ - `.new`: **removed** parameters `presets_custom` & `presets_map`
1726
+ - **removed** constants `DEFAULT_CUSTOM`, and `DEFAULT_MAP`
1727
+ - **removed** private methods `#presets_custom` and `#presets_map`
1728
+ - **changed** private method `#compile` receives directly an array of `permissions_custom`
1729
+ - `Eco::API::Session::Config` **removed** methods `#presets_custom=` & `presets_map=`
1730
+ - `Eco::API::Session::Config::People` **removed** methods `#presets_custom=`, `#presets_map=`,`#presets_custom` & `#presets_map`
1731
+ - **removed** `eco/api/organization/presets_reference.json`
1732
+ - **moved** case-specific options to only be active when the user case is previously invoked in the command line.
1733
+
1734
+ ### Fixed
1735
+
1736
+ - **handle** `Ecoportal::API:Errors::TimeOut` in `Eco::API::Session::Batch` by offering to retry.
1519
1737
 
1520
1738
  ## [2.0.16] - 2021-05-04
1521
1739
 
1522
1740
  ### Added
1523
- - Use case `Eco::API::UseCases::DefaultCases::SupersCyclicIdentify`, invokable via `-identify-cyclic-supers`
1524
- - Use case `Eco::API::UseCases::DefaultCases::AbstractPolicyGroupAbilities`, invokable via `-abstract-policygroup-abilities`
1525
- - Option to run `one-off` scripts, without org configurations:
1526
- 1. `-api-key INTERNAL_API_KEY`
1527
- 2. `-enviro [live|pre.dev]`
1528
- 3. `-org NAME_OF_ORG`
1741
+
1742
+ - Use case `Eco::API::UseCases::DefaultCases::SupersCyclicIdentify`, invokable via `-identify-cyclic-supers`
1743
+ - Use case `Eco::API::UseCases::DefaultCases::AbstractPolicyGroupAbilities`, invokable via `-abstract-policygroup-abilities`
1744
+ - Option to run `one-off` scripts, without org configurations:
1745
+ 1. `-api-key INTERNAL_API_KEY`
1746
+ 2. `-enviro [live|pre.dev]`
1747
+ 3. `-org NAME_OF_ORG`
1529
1748
 
1530
1749
  ## [2.0.15] - 2021-04-29
1531
1750
 
1532
1751
  ### Added
1533
- - Use case `Eco::API::UseCases::DefaultCases::SupersHierarchy`, invokable via `-supers-hierarchy`
1752
+
1753
+ - Use case `Eco::API::UseCases::DefaultCases::SupersHierarchy`, invokable via `-supers-hierarchy`
1754
+
1534
1755
  ### Fixed
1535
- - `eco/cli/config/default/workflow.rb` prevent `rescue` looping
1756
+
1757
+ - `eco/cli/config/default/workflow.rb` prevent `rescue` looping
1536
1758
 
1537
1759
  ## [2.0.14] - 2021-04-15
1538
1760
 
1539
1761
  ### Added
1540
- - `Eco::API::UseCases::DefaultCases::ToCsvCase` added option `-internal-names` to avoid overriding data on export
1541
- - `Eco::API::Common::People::PersonEntry#mapped_entry` exposed method for raw `csv` generation
1542
- - `Eco::API::Organization::PresetsFactory` added integrity validation for `person_*` abilities
1543
- - `Eco::API::Session::Batch::Job` more debug info on erron handlers
1762
+
1763
+ - `Eco::API::UseCases::DefaultCases::ToCsvCase` added option `-internal-names` to avoid overriding data on export
1764
+ - `Eco::API::Common::People::PersonEntry#mapped_entry` exposed method for raw `csv` generation
1765
+ - `Eco::API::Organization::PresetsFactory` added integrity validation for `person_*` abilities
1766
+ - `Eco::API::Session::Batch::Job` more debug info on erron handlers
1544
1767
 
1545
1768
  ### Fixed
1546
- - `Eco::API::Error.get_type` was almost always matching `Eco::API::Error::Unclassified` -> fixed
1769
+
1770
+ - `Eco::API::Error.get_type` was almost always matching `Eco::API::Error::Unclassified` -> fixed
1547
1771
 
1548
1772
  ## [2.0.13] - 2021-03-31
1549
1773
 
1550
1774
  ### Added
1551
- - Stats on the `Eco::API::Session::Batch`
1552
- - Allow to inherit and re-use the `Eco::API::UseCases::DefaultCase::HrisCase`
1775
+
1776
+ - Stats on the `Eco::API::Session::Batch`
1777
+ - Allow to inherit and re-use the `Eco::API::UseCases::DefaultCase::HrisCase`
1553
1778
 
1554
1779
  ### Fixed
1555
- - Ensure auto-loading for `Eco::API::UseCases`
1780
+
1781
+ - Ensure auto-loading for `Eco::API::UseCases`
1556
1782
 
1557
1783
  ## [2.0.12] - 2021-03-29
1558
1784
 
1559
1785
  ### Changed
1560
- - `Eco::CLI#run` it does include any defined states on the workflow
1561
1786
 
1787
+ - `Eco::CLI#run` it does include any defined states on the workflow
1562
1788
 
1563
1789
  ## [2.0.11] - 2021-03-29
1564
1790
 
1565
1791
  ### Fixed
1566
- - `Eco::API::Session::Batch:Errors#errors` changed `Array#filter` call to `Array#select` call
1792
+
1793
+ - `Eco::API::Session::Batch:Errors#errors` changed `Array#filter` call to `Array#select` call
1567
1794
 
1568
1795
  ## [2.0.10] - 2021-03-26
1569
1796
 
1570
1797
  ### Added
1571
- - `Eco::API::Common::People::PersonParser`
1572
- - `#defined_attrs`: list of all attribute defined parsers (regardless they belong to the model)
1573
- - `Eco::API::Organization::TagTree` methods
1574
- - `#total_depth` to know the total depth of a tree
1575
- - `#flat?` to know if the tagtree has only 1 level
1798
+
1799
+ - `Eco::API::Common::People::PersonParser`
1800
+ - `#defined_attrs`: list of all attribute defined parsers (regardless they belong to the model)
1801
+ - `Eco::API::Organization::TagTree` methods
1802
+ - `#total_depth` to know the total depth of a tree
1803
+ - `#flat?` to know if the tagtree has only 1 level
1576
1804
 
1577
1805
  ### Changed
1578
- - `Eco::API::Common::People::PersonParser`
1579
- - Renamed `#all_attrs` to `#all_model_attrs`
1580
- - Ranamed `#defined_attrs` to `#defined_model_attrs`
1581
- - Ranamed `#undefined_attrs` to `#undefined_model_attrs`
1806
+
1807
+ - `Eco::API::Common::People::PersonParser`
1808
+ - Renamed `#all_attrs` to `#all_model_attrs`
1809
+ - Ranamed `#defined_attrs` to `#defined_model_attrs`
1810
+ - Ranamed `#undefined_attrs` to `#undefined_model_attrs`
1582
1811
 
1583
1812
  ## [2.0.9] - 2021-03-19
1584
1813
 
1585
1814
  ### Changed
1586
- - `Eco::API::Session::Batch:Errors#person_ref` moved to the public method
1815
+
1816
+ - `Eco::API::Session::Batch:Errors#person_ref` moved to the public method
1587
1817
 
1588
1818
  ## [2.0.8] - 2021-03-09
1589
1819
 
1590
1820
  ### Fixed
1591
- - `Ecoportal::API::V1::Person#identity` adjust behavior
1821
+
1822
+ - `Ecoportal::API::V1::Person#identity` adjust behavior
1592
1823
 
1593
1824
  ## [2.0.7] - 2021-03-09
1594
1825
 
1595
1826
  ### Fixed
1596
- - `Eco::API::Session::Batch::JobsGroups` and `Eco::API::Session::Batch::Jobs`: when new `Batch::Job`s are creating during launch, they remained unlaunched
1597
- - this fix makes `#launch` method to iterate until there are no pending
1827
+
1828
+ - `Eco::API::Session::Batch::JobsGroups` and `Eco::API::Session::Batch::Jobs`: when new `Batch::Job`s are creating during launch, they remained unlaunched
1829
+ - this fix makes `#launch` method to iterate until there are no pending
1598
1830
 
1599
1831
  ## [2.0.6] - 2021-03-08
1600
1832
 
1601
1833
  ### Changed
1602
- - `Eco::API::Session::Batch:Errors` moved some methods to be private
1834
+
1835
+ - `Eco::API::Session::Batch:Errors` moved some methods to be private
1836
+
1603
1837
  ### Fixed
1604
- - `Eco::API::Error` should inherit from `StandardError`, rather than from `Exception`
1838
+
1839
+ - `Eco::API::Error` should inherit from `StandardError`, rather than from `Exception`
1605
1840
 
1606
1841
  ## [2.0.5] - 2021-02-24
1607
1842
 
1608
1843
  ### Fixed
1609
- - `Eco::API::Common::People::PersonParser#symbol_keys` to use `Array#select`
1610
- - as `Array#filter` was introduced in ruby `2.5.5`
1844
+
1845
+ - `Eco::API::Common::People::PersonParser#symbol_keys` to use `Array#select`
1846
+ - as `Array#filter` was introduced in ruby `2.5.5`
1611
1847
 
1612
1848
  ## [2.0.4] - 2021-02-23
1613
1849
 
1614
1850
  ### Changed
1615
- - `Eco::API::Common::People::PersonParser#defined_attrs` to include virtual attributes
1851
+
1852
+ - `Eco::API::Common::People::PersonParser#defined_attrs` to include virtual attributes
1616
1853
 
1617
1854
  ## [2.0.3] - 2021-02-23
1618
1855
 
1619
1856
  ### Added
1620
- - `Eco::API::UseCases::OozeSamples::OozeUpdateCase`: added integration to update page instances (non-templates)
1857
+
1858
+ - `Eco::API::UseCases::OozeSamples::OozeUpdateCase`: added integration to update page instances (non-templates)
1621
1859
 
1622
1860
  ### Fixed
1623
- - `Eco::API::Policies::DefaultPolicies::UserAccess` complete default policy code.
1861
+
1862
+ - `Eco::API::Policies::DefaultPolicies::UserAccess` complete default policy code.
1624
1863
 
1625
1864
  ## [2.0.2] - 2021-02-22
1626
1865
 
1627
1866
  ### Changed
1628
- - upgraded dependencies with `ecoportal-api`
1867
+
1868
+ - upgraded dependencies with `ecoportal-api`
1629
1869
 
1630
1870
  ## [2.0.1] - 2021-02-22
1631
1871
 
1632
1872
  ### Changed
1633
- - upgraded dependencies with `ecoportal-api-oozes` to `ecoportal-api-v2`
1873
+
1874
+ - upgraded dependencies with `ecoportal-api-oozes` to `ecoportal-api-v2`
1634
1875
 
1635
1876
  ## [1.5.15] - 2021-02-17
1636
1877
 
1637
1878
  ### Added
1638
- - `Eco::API::Common::ClassHelpers` added support for class methods inheritance
1639
- - this is key to be able to define usecase models to inherit from
1640
- - `Eco::API::UseCases::OozeSamples::OozeUpdateCase`: added this sample to inherit from (simplifying use cases code)
1641
- - `Eco::API::Common::ClassHelpers` added inheritable attribute values
1642
- - added benchmarking to people loaders:
1643
- - `Eco::API::MicroCases#people_load`
1644
- - `Eco::API::MicroCases#people_cache`
1645
- - `Eco::API::MicroCases#people_search`
1646
- - `Eco::API::MicroCases#refresh`
1879
+
1880
+ - `Eco::API::Common::ClassHelpers` added support for class methods inheritance
1881
+ - this is key to be able to define usecase models to inherit from
1882
+ - `Eco::API::UseCases::OozeSamples::OozeUpdateCase`: added this sample to inherit from (simplifying use cases code)
1883
+ - `Eco::API::Common::ClassHelpers` added inheritable attribute values
1884
+ - added benchmarking to people loaders:
1885
+ - `Eco::API::MicroCases#people_load`
1886
+ - `Eco::API::MicroCases#people_cache`
1887
+ - `Eco::API::MicroCases#people_search`
1888
+ - `Eco::API::MicroCases#refresh`
1647
1889
 
1648
1890
  ### Fixed
1649
- - `Eco::API::Policies::DefaultPolicies::UserAccess` typos in default api policy
1891
+
1892
+ - `Eco::API::Policies::DefaultPolicies::UserAccess` typos in default api policy
1650
1893
 
1651
1894
  ## [1.5.14] - 2021-02-05
1652
1895
 
1653
1896
  ### Added
1654
- - `Eco::API::Policies::DefaultPolicies` policies that are run always (after the custom policies)
1655
- - `Eco::API::Policies::DefaultPolicies::UserAccess`:
1656
- - remove account if there's no `email`
1657
- - provision min user level to those with account (if no usergroup and no abilities)
1658
- - `Eco::API::Session#policies` which merges the default policies to be added/run after the custom policies
1659
- - `Eco::API::Common::Session::Logger`: add caching of logs
1660
- - `Eco::API::Common::Session::Logger::Cache` new class to manage cached logs
1661
- - `Eco::API::Common::Session::Logger::Log` new class to have a trace on logs
1662
- - `Eco::API::Session::Batch::Job#summary` added subjobs (error handlers) summary
1897
+
1898
+ - `Eco::API::Policies::DefaultPolicies` policies that are run always (after the custom policies)
1899
+ - `Eco::API::Policies::DefaultPolicies::UserAccess`:
1900
+ - remove account if there's no `email`
1901
+ - provision min user level to those with account (if no usergroup and no abilities)
1902
+ - `Eco::API::Session#policies` which merges the default policies to be added/run after the custom policies
1903
+ - `Eco::API::Common::Session::Logger`: add caching of logs
1904
+ - `Eco::API::Common::Session::Logger::Cache` new class to manage cached logs
1905
+ - `Eco::API::Common::Session::Logger::Log` new class to have a trace on logs
1906
+ - `Eco::API::Session::Batch::Job#summary` added subjobs (error handlers) summary
1663
1907
 
1664
1908
  ### Changed
1665
- - `Eco::API::Session::Batch::Job#launch` it will also run the default api policies before feedback and query launch
1666
- - `Eco::API::Common::People::PersonEntry` add error log when wrong email error is detected
1667
- - previously it would have crashed
1909
+
1910
+ - `Eco::API::Session::Batch::Job#launch` it will also run the default api policies before feedback and query launch
1911
+ - `Eco::API::Common::People::PersonEntry` add error log when wrong email error is detected
1912
+ - previously it would have crashed
1668
1913
 
1669
1914
  ## [1.5.13] - 2021-02-01
1670
1915
 
1671
1916
  ### Changed
1672
- - upgraded dependency with `ecoportal-api-oozes`
1917
+
1918
+ - upgraded dependency with `ecoportal-api-oozes`
1673
1919
 
1674
1920
  ### Fixed
1675
- - `Eco::API::Session::Config::Api` was not including the correct `host`
1676
- - this could have launched an `api` request to `live.ecoportal.com` when targeting `pre.dev`
1921
+
1922
+ - `Eco::API::Session::Config::Api` was not including the correct `host`
1923
+ - this could have launched an `api` request to `live.ecoportal.com` when targeting `pre.dev`
1677
1924
 
1678
1925
  ## [1.5.12] - 2021-02-01
1679
1926
 
1680
1927
  ### Added
1681
- - `Eco::API::Common::People::DefaultParsers::CSVParser` when cell content is `Null`, capture `nil` value.
1928
+
1929
+ - `Eco::API::Common::People::DefaultParsers::CSVParser` when cell content is `Null`, capture `nil` value.
1682
1930
 
1683
1931
  ### Changed
1684
- - upgraded `ecoportal-api` dependency
1932
+
1933
+ - upgraded `ecoportal-api` dependency
1685
1934
 
1686
1935
  ## [1.5.11] - 2021-01-25
1687
1936
 
1688
1937
  ### Added
1689
- - `Eco::API::Organization::TagTree#subtag?` to check if the tag is in any subtree.
1938
+
1939
+ - `Eco::API::Organization::TagTree#subtag?` to check if the tag is in any subtree.
1690
1940
 
1691
1941
  ### Fixed
1692
- - `Eco::API::MicroCases#set_supervisor` shouldn't set it if the entry does not have it.
1942
+
1943
+ - `Eco::API::MicroCases#set_supervisor` shouldn't set it if the entry does not have it.
1693
1944
 
1694
1945
  ## [1.5.10] - 2021-01-19
1695
1946
 
1696
1947
  ### Fixed
1697
- - `Eco::API::Session::Batch::Errors#print` show the row number of the input data.
1948
+
1949
+ - `Eco::API::Session::Batch::Errors#print` show the row number of the input data.
1698
1950
 
1699
1951
  ## [1.5.9] - 2021-01-08
1700
1952
 
1701
1953
  ### Added
1702
- - `Eco::API::Organization::TagTree#subtags` to get all the tags but those of the highest level.
1954
+
1955
+ - `Eco::API::Organization::TagTree#subtags` to get all the tags but those of the highest level.
1703
1956
 
1704
1957
  ## [1.5.8] - 2021-01-05
1705
1958
 
1706
1959
  ### Fixed
1707
- - `Eco::API::Session::Batch::Jobs#job` shouldn't be calling the post-launch callback function on creation.
1708
- - `Eco::API::Session#new_job` should include a `&block` parameter.
1709
- - `Eco::API::UseCases::DefaultCases::RefreshCase`: fixed typo
1960
+
1961
+ - `Eco::API::Session::Batch::Jobs#job` shouldn't be calling the post-launch callback function on creation.
1962
+ - `Eco::API::Session#new_job` should include a `&block` parameter.
1963
+ - `Eco::API::UseCases::DefaultCases::RefreshCase`: fixed typo
1710
1964
 
1711
1965
  ## [1.5.7] - 2020-12-17
1712
1966
 
1713
1967
  ### Fixed
1714
- - `Eco::API::Sesssion#parse_attribute` was not using phase argument
1968
+
1969
+ - `Eco::API::Sesssion#parse_attribute` was not using phase argument
1715
1970
 
1716
1971
  ## [1.5.6] - 2020-12-04
1717
1972
 
1718
1973
  ### Fixed
1719
- - `Eco::API::UseCases::DefaultCases::RestoreDBCase` fixed typo and slightly improved
1720
- - fixed some back-end errors when chaining usecases
1721
- - `Eco::API::UseCases::DefaultCases::OrgDataConvertCase` improved
1974
+
1975
+ - `Eco::API::UseCases::DefaultCases::RestoreDBCase` fixed typo and slightly improved
1976
+ - fixed some back-end errors when chaining usecases
1977
+ - `Eco::API::UseCases::DefaultCases::OrgDataConvertCase` improved
1722
1978
 
1723
1979
  ## [1.5.5] - 2020-12-03
1724
1980
 
1725
1981
  ### Fixed
1726
- - rubies previous to `2.5` do not have `yield_self`
1982
+
1983
+ - rubies previous to `2.5` do not have `yield_self`
1727
1984
 
1728
1985
  ## [1.5.4] - 2020-12-02
1729
1986
 
1730
1987
  ### Added
1731
- - update `ecoportal-api` dependency
1988
+
1989
+ - update `ecoportal-api` dependency
1990
+
1732
1991
  ### Fixed
1733
- - `Eco::API::MicroCases#people_refresh` typo
1992
+
1993
+ - `Eco::API::MicroCases#people_refresh` typo
1734
1994
 
1735
1995
  ## [1.5.3] - 2020-11-30
1736
1996
 
1737
1997
  ### Fixed
1738
- - `Eco::API::Session::Batch::RequestStats#blanked_value?` better blank detection
1739
- - `Eco::API::MicroCases#with_each_starter` rectified typo
1998
+
1999
+ - `Eco::API::Session::Batch::RequestStats#blanked_value?` better blank detection
2000
+ - `Eco::API::MicroCases#with_each_starter` rectified typo
1740
2001
 
1741
2002
  ## [1.5.2] - 2020-11-26
1742
2003
 
1743
2004
  ### Added
1744
- - **custom** usecases, policies and error handlers can now be **declared within its own class**
1745
- * helper classes to inherit from: `Eco::API::Custom::UseCase`, `Eco::API::Custom::Policy`, `Eco::API::Custom::ErrorHandler` and `Eco::API::Custom::Parser`
1746
- * please, notice that you should create new classes under the following namespaces
1747
- - `Custom::UseCase`: custom use cases
1748
- - `Custom::Policy`: custom policy
1749
- - `Custom::ErrorHandler`: custom error handler
1750
- - `Custom::Parser`: custom parser
1751
- * this also allows to inherit from existing defaults and models (models to come)
1752
- - implemented first **microcases** (evaluation stage): to be able to centralize common code between use cases
1753
- - see `Eco::API::MicroCases` class
1754
- - **command line** added `--help` to list all `usecases`, `options` and `filters`
1755
- * `--help -options` will print a documented overview of options
1756
- * `--help -filters` will print a documented overview of people filters
1757
- * `--help -input-filters` will print a documented overview of input data filters
1758
- * `--help -usecases` will print a documented overview of the usecases
1759
- - **command line** filters for `filter_tags` on:
1760
- * input data: `-input-filter-tags-all`, `input-filter-tags-any`, `input-filter-tags-tree`
1761
- * people data: `-filter-tags-all`, `-filter-tags-any`, `-filter-tags-tree`
1762
- - **batch stats** & **batch policy**
1763
- * `Eco::API::Session::Batch::RequestStats`: included additional guide on what has been **blanked**.
1764
- - now on you should see how many have been blanked, i.e.: `blanked_email`, `blanked_filter_tags`, `blanked_policy_group_ids`, `blanked_supervisor_id`
1765
- * Moreover, the new `blanked_*` properties are available for `config.batch_policies` provided that you can limit the `max` and/or `min` expected on each batch **type**
1766
- - **csv** generation (`-people-to-csv` and `-people-to-csv -detailed`):
1767
- * now includes `"Has Account?"` new column
1768
- * removed the useless `send_invites` column
1769
- - **errors** improved error message when setting values to a `person` from an `entry`:
1770
- * it now shows the **row number**
1771
- * it now gives the specific value that failed in case of `Exception`
1772
- - `Eco::API::Common::DefaultPasers::LoginProvidersParser`: made native
1773
- - `Eco::API::UseCases::DefaultUsecases::TransferAccountCase`: added `-transer-account-from` usecase
1774
- * to allow actually transfer an account/user from one person to another in the org
1775
- - `Ecoportal::API::V1::Person#entry`: method to be able to have a reference to the update/creation input data entry.
1776
- - new filter methods for `Eco::API::Common::People::Entries` and `Eco::API::Organization::People`
1777
- * `#filter_tags_any` & `#filter_tags_all`: those that have any or all the target tags
1778
- * `#policy_group_ids_any` & `#policy_groups_all`: those that have any or all the target policy groups
1779
-
1780
- ### Changed
1781
- - updated dependency on `ecoportal-api` gem
1782
- - **command line** some changes:
1783
- - renamed `-refresh-presets` to `-refresh-abilities`
1784
- - renamed `-recover-db` to `restore-db`
1785
- - removed `Eco::API::Session::Tasks`: all the helpers have been moved and documented as part of `Eco::API::MicroCases` (some have been renamed)
1786
- - as a consequence, removed method `Eco::API::Session#do`
1787
- - `Eco::API::Common::People::PersonEntry#to_hash` has been removed
1788
- - now you should use the more explicit `Eco::API::Common::People::PersonEntry#external_entry`
1789
- - **internal refactor** of `Eco::API::UseCases::DefaultCases`:
1790
- * made so they inherit from `Eco::API::Common::Loaders::UseCase` and cases are autoloaded during run-time
1791
- - **internal refactor** of input entries processing:
1792
- * `Eco::API::Common::People::PersonEntry` internal refactor
1793
- - need to make the code clearer and make the `parsing` and `serializing` symmetrical
1794
- - the `serializers` were expecting an `Ecoportal::API::V1::Person`, which was at a different to that of when the `parsers` kicked in.
1795
- - now it has been introduced the possibility to launch the serializer in a different stage of the process
1796
- - to keep backwards compatibility, now it is possible to define at which `phase` of the parsing/serializing each parser and each serializer should kick in, which entailed changes in other classes and a new parameter in some methods thereof...
1797
- * `Eco::Language::Models::ParserSerializer` offers `category` parameter so you can have multiple parsers and serializers per each parser/serializer (one per category).
1798
- * `Eco::API::Common::People::PersonParser` uses `category` to define a `phase` when the `parser` or the `serializer` should be active => the expected object in the parser `callback` will be different depending on at which phase it is active and therefore called
1799
- - for `parser` valid **phases** are `:internal` (default) and `:final`
1800
- - for `serializer` valid **phases** are `:person` (default), `:final` and `:internal`
1801
- - the expected output of such **callbacks** is the same as before: either the single `value` to return or a `Hash` with pair key/values of virtually-generated or existing-modified attributes of the source/input data passed to the parser
1802
-
1803
- ### Fixed
1804
- - **command line**
1805
- * `-search-soft` was being ignored in orgs with org config `session.config.people.strict_search = true`
1806
- * Log connection information (**enabled**): it was not printing where the connection was being made
1807
- * enabled chaining between usecases: they will be processed in the order they hold in the command line
1808
- - Removed error double backtrace (now it should only show one)
1809
- - `Eco::API::Common::People::EntryFactory#entries` was not using `encoding` parameter properly.
1810
- - `Eco::API::Common::People::DefaultParsers::CSVParser` does at `strip` (trim) of the header names.
1811
- - `Eco::API::Organization::PresetsFactory#merge` was including abilities that were not included in the custom presets
1812
- - fix: it will include only those that are defined, provided that using it will not override account abilities that should not be targeted, such as `tasks`
1813
- - this new behavior will preserve account abilities that should be preserved; not targeted by the custom presets
1814
- - some use cases where giving incorrect row number, fixed so they do:
1815
- - `Eco::API::Common::People::EntryFactory#entries` adds `idx` key to each `entry`
1816
- - `Eco::API::Common::People::PersonEntry`: serialization process has been normalized (previously there were missing fields)
1817
- - this fix makes the `csv` with the complete set of fields that should be exported
1818
- - `Ecoportal::API::Internal::Person#account_added` fixed typo
1819
- - `Ecoportal::API::Session::Batch#get_people` should return `Array<Person>` invariably
2005
+
2006
+ - **custom** usecases, policies and error handlers can now be **declared within its own class**
2007
+ - helper classes to inherit from: `Eco::API::Custom::UseCase`, `Eco::API::Custom::Policy`, `Eco::API::Custom::ErrorHandler` and `Eco::API::Custom::Parser`
2008
+ - please, notice that you should create new classes under the following namespaces
2009
+ - `Custom::UseCase`: custom use cases
2010
+ - `Custom::Policy`: custom policy
2011
+ - `Custom::ErrorHandler`: custom error handler
2012
+ - `Custom::Parser`: custom parser
2013
+ - this also allows to inherit from existing defaults and models (models to come)
2014
+ - implemented first **microcases** (evaluation stage): to be able to centralize common code between use cases
2015
+ - see `Eco::API::MicroCases` class
2016
+ - **command line** added `--help` to list all `usecases`, `options` and `filters`
2017
+ - `--help -options` will print a documented overview of options
2018
+ - `--help -filters` will print a documented overview of people filters
2019
+ - `--help -input-filters` will print a documented overview of input data filters
2020
+ - `--help -usecases` will print a documented overview of the usecases
2021
+ - **command line** filters for `filter_tags` on:
2022
+ - input data: `-input-filter-tags-all`, `input-filter-tags-any`, `input-filter-tags-tree`
2023
+ - people data: `-filter-tags-all`, `-filter-tags-any`, `-filter-tags-tree`
2024
+ - **batch stats** & **batch policy**
2025
+ - `Eco::API::Session::Batch::RequestStats`: included additional guide on what has been **blanked**.
2026
+ - now on you should see how many have been blanked, i.e.: `blanked_email`, `blanked_filter_tags`, `blanked_policy_group_ids`, `blanked_supervisor_id`
2027
+ - Moreover, the new `blanked_*` properties are available for `config.batch_policies` provided that you can limit the `max` and/or `min` expected on each batch **type**
2028
+ - **csv** generation (`-people-to-csv` and `-people-to-csv -detailed`):
2029
+ - now includes `"Has Account?"` new column
2030
+ - removed the useless `send_invites` column
2031
+ - **errors** improved error message when setting values to a `person` from an `entry`:
2032
+ - it now shows the **row number**
2033
+ - it now gives the specific value that failed in case of `Exception`
2034
+ - `Eco::API::Common::DefaultPasers::LoginProvidersParser`: made native
2035
+ - `Eco::API::UseCases::DefaultUsecases::TransferAccountCase`: added `-transer-account-from` usecase
2036
+ - to allow actually transfer an account/user from one person to another in the org
2037
+ - `Ecoportal::API::V1::Person#entry`: method to be able to have a reference to the update/creation input data entry.
2038
+ - new filter methods for `Eco::API::Common::People::Entries` and `Eco::API::Organization::People`
2039
+ - `#filter_tags_any` & `#filter_tags_all`: those that have any or all the target tags
2040
+ - `#policy_group_ids_any` & `#policy_groups_all`: those that have any or all the target policy groups
2041
+
2042
+ ### Changed
2043
+
2044
+ - updated dependency on `ecoportal-api` gem
2045
+ - **command line** some changes:
2046
+ - renamed `-refresh-presets` to `-refresh-abilities`
2047
+ - renamed `-recover-db` to `restore-db`
2048
+ - removed `Eco::API::Session::Tasks`: all the helpers have been moved and documented as part of `Eco::API::MicroCases` (some have been renamed)
2049
+ - as a consequence, removed method `Eco::API::Session#do`
2050
+ - `Eco::API::Common::People::PersonEntry#to_hash` has been removed
2051
+ - now you should use the more explicit `Eco::API::Common::People::PersonEntry#external_entry`
2052
+ - **internal refactor** of `Eco::API::UseCases::DefaultCases`:
2053
+ - made so they inherit from `Eco::API::Common::Loaders::UseCase` and cases are autoloaded during run-time
2054
+ - **internal refactor** of input entries processing:
2055
+ - `Eco::API::Common::People::PersonEntry` internal refactor
2056
+ - need to make the code clearer and make the `parsing` and `serializing` symmetrical
2057
+ - the `serializers` were expecting an `Ecoportal::API::V1::Person`, which was at a different to that of when the `parsers` kicked in.
2058
+ - now it has been introduced the possibility to launch the serializer in a different stage of the process
2059
+ - to keep backwards compatibility, now it is possible to define at which `phase` of the parsing/serializing each parser and each serializer should kick in, which entailed changes in other classes and a new parameter in some methods thereof...
2060
+ - `Eco::Language::Models::ParserSerializer` offers `category` parameter so you can have multiple parsers and serializers per each parser/serializer (one per category).
2061
+ - `Eco::API::Common::People::PersonParser` uses `category` to define a `phase` when the `parser` or the `serializer` should be active => the expected object in the parser `callback` will be different depending on at which phase it is active and therefore called
2062
+ - for `parser` valid **phases** are `:internal` (default) and `:final`
2063
+ - for `serializer` valid **phases** are `:person` (default), `:final` and `:internal`
2064
+ - the expected output of such **callbacks** is the same as before: either the single `value` to return or a `Hash` with pair key/values of virtually-generated or existing-modified attributes of the source/input data passed to the parser
2065
+
2066
+ ### Fixed
2067
+
2068
+ - **command line**
2069
+ - `-search-soft` was being ignored in orgs with org config `session.config.people.strict_search = true`
2070
+ - Log connection information (**enabled**): it was not printing where the connection was being made
2071
+ - enabled chaining between usecases: they will be processed in the order they hold in the command line
2072
+ - Removed error double backtrace (now it should only show one)
2073
+ - `Eco::API::Common::People::EntryFactory#entries` was not using `encoding` parameter properly.
2074
+ - `Eco::API::Common::People::DefaultParsers::CSVParser` does at `strip` (trim) of the header names.
2075
+ - `Eco::API::Organization::PresetsFactory#merge` was including abilities that were not included in the custom presets
2076
+ - fix: it will include only those that are defined, provided that using it will not override account abilities that should not be targeted, such as `tasks`
2077
+ - this new behavior will preserve account abilities that should be preserved; not targeted by the custom presets
2078
+ - some use cases where giving incorrect row number, fixed so they do:
2079
+ - `Eco::API::Common::People::EntryFactory#entries` adds `idx` key to each `entry`
2080
+ - `Eco::API::Common::People::PersonEntry`: serialization process has been normalized (previously there were missing fields)
2081
+ - this fix makes the `csv` with the complete set of fields that should be exported
2082
+ - `Ecoportal::API::Internal::Person#account_added` fixed typo
2083
+ - `Ecoportal::API::Session::Batch#get_people` should return `Array<Person>` invariably
1820
2084
 
1821
2085
  ## [1.5.1] - 2020-10-08
1822
2086
 
1823
2087
  ### Added
1824
- - `presets_values.json`: added the new ability `tasks` (eP release `1.5.3`)
1825
- - `Ecoportal::API::Internal::Person` patch helper methods:
1826
- * `new?`: to know if this person is new in the people manager as a result of the current launch
1827
- * `account_added?`: to know if this person did not have account but they will have it after the current launch
1828
- - `Eco::API::Session#new_job`: to shorten code
1829
- - `Eco::API::Common::DefaultPasers::PolicyGroupsParser`: made native, as it is a very common parser
1830
- - `Eco::API::Common::DefaultPasers::FreemiumParser` to parse/serialise boolean
1831
- - `Eco::API::Common::People::PersonParser`: added `freemium` as core attribute
1832
- - `Eco::API::UserCases::DefaultCases::RecoverDBCase`: recovers also `freemium`
1833
- - scoping **microcases** : to be able to centralize common code between use cases
1834
- - at its early stage (currently not available for usage)
1835
- - dependency on `ecoportal-api-oozes` gem
1836
- - added basic support for **api** `v2`
1837
- - you can use `session.api(:oozes)` to obtain an api `v2`
1838
- - you can manage your keys directly on the apis configuration
1839
- - added `external_key:`, `user_key:` and `apis.default_user_key`
1840
-
1841
- ```ruby
1842
- ASSETS.config do |config|
1843
- config.apis.default_user_key = 'your-user-key-here'
1844
-
1845
- config.add_api("org-environment", {
1846
- host: 'pre.dev.ecoportal.com',
1847
- key: 'an-internal-org-api-key',
1848
- version: :internal,
1849
- external_key: 'an-external-org-api-key',
1850
- user_key: 'org-user-key-for-activity-stream',
1851
- mode: :local
1852
- })
1853
- end
1854
- ```
2088
+
2089
+ - `presets_values.json`: added the new ability `tasks` (eP release `1.5.3`)
2090
+ - `Ecoportal::API::Internal::Person` patch helper methods:
2091
+ - `new?`: to know if this person is new in the people manager as a result of the current launch
2092
+ - `account_added?`: to know if this person did not have account but they will have it after the current launch
2093
+ - `Eco::API::Session#new_job`: to shorten code
2094
+ - `Eco::API::Common::DefaultPasers::PolicyGroupsParser`: made native, as it is a very common parser
2095
+ - `Eco::API::Common::DefaultPasers::FreemiumParser` to parse/serialise boolean
2096
+ - `Eco::API::Common::People::PersonParser`: added `freemium` as core attribute
2097
+ - `Eco::API::UserCases::DefaultCases::RecoverDBCase`: recovers also `freemium`
2098
+ - scoping **microcases** : to be able to centralize common code between use cases
2099
+ - at its early stage (currently not available for usage)
2100
+ - dependency on `ecoportal-api-oozes` gem
2101
+ - added basic support for **api** `v2`
2102
+ - you can use `session.api(:oozes)` to obtain an api `v2`
2103
+ - you can manage your keys directly on the apis configuration
2104
+ - added `external_key:`, `user_key:` and `apis.default_user_key`
2105
+
2106
+ ```ruby
2107
+ ASSETS.config do |config|
2108
+ config.apis.default_user_key = 'your-user-key-here'
2109
+
2110
+ config.add_api("org-environment", {
2111
+ host: 'pre.dev.ecoportal.com',
2112
+ key: 'an-internal-org-api-key',
2113
+ version: :internal,
2114
+ external_key: 'an-external-org-api-key',
2115
+ user_key: 'org-user-key-for-activity-stream',
2116
+ mode: :local
2117
+ })
2118
+ end
2119
+ ```
2120
+
1855
2121
  ### Changed
1856
- - internally: load `Eco::API::Common::Session` before `Eco::API::Common::People`
1857
- - `Eco::API::Common::People::EntryFactory`: made child of `Eco::API::Common::Session::BaseSession`
1858
- - refactored all the `api` connection creation for simplicity and to support multi api version
1859
- - delegated `Eco::API::Session::Batch#get` to `Ecoportal::API::V1::People#get_all`
2122
+
2123
+ - internally: load `Eco::API::Common::Session` before `Eco::API::Common::People`
2124
+ - `Eco::API::Common::People::EntryFactory`: made child of `Eco::API::Common::Session::BaseSession`
2125
+ - refactored all the `api` connection creation for simplicity and to support multi api version
2126
+ - delegated `Eco::API::Session::Batch#get` to `Ecoportal::API::V1::People#get_all`
1860
2127
 
1861
2128
  ### Fixed
1862
- - correct `.gemspec` dependency version restrictions
2129
+
2130
+ - correct `.gemspec` dependency version restrictions
1863
2131
 
1864
2132
  ## [1.5.0] - 2020-09-11
1865
2133
 
1866
2134
  ### Added
1867
- - `Eco::Data::Files#file_empty?` to prevent error when checking encoding
2135
+
2136
+ - `Eco::Data::Files#file_empty?` to prevent error when checking encoding
2137
+
1868
2138
  ### Changed
1869
- - change abilities to align with ecoPortal release `1.5.2`
2139
+
2140
+ - change abilities to align with ecoPortal release `1.5.2`
2141
+
1870
2142
  ### Fixed
1871
- - `Eco::CSV#parse` and `Eco::CSV#read` should use the proper `encoding` when it's `bom`
1872
- * apparently, this can only be achieved by passing an argument such as `rb:bom|utf-8`
1873
- * best reference found: https://stackoverflow.com/a/60794851/4352306
2143
+
2144
+ - `Eco::CSV#parse` and `Eco::CSV#read` should use the proper `encoding` when it's `bom`
2145
+ - apparently, this can only be achieved by passing an argument such as `rb:bom|utf-8`
2146
+ - best reference found: <https://stackoverflow.com/a/60794851/4352306>
1874
2147
 
1875
2148
  ## [1.4.2] - 2020-07-23
1876
2149
 
1877
2150
  ### Fixed
1878
- - preserve backtrace on logging
2151
+
2152
+ - preserve backtrace on logging
1879
2153
 
1880
2154
  ## [1.4.0] - 2020-07-14
1881
2155
 
1882
2156
  ### Changed
1883
- - change abilities to align with ecoPortal release `1.5.0`
1884
- - remove some patches on `ecoportal-api`
1885
- - removed patch method `Ecoportal::API::V1::Person#sync`
2157
+
2158
+ - change abilities to align with ecoPortal release `1.5.0`
2159
+ - remove some patches on `ecoportal-api`
2160
+ - removed patch method `Ecoportal::API::V1::Person#sync`
2161
+
1886
2162
  ### Fixed
1887
- - `Eco::CSV#parse` and `Eco::CSV#read` should use the proper `:encoding` when it's `bom`
2163
+
2164
+ - `Eco::CSV#parse` and `Eco::CSV#read` should use the proper `:encoding` when it's `bom`
1888
2165
 
1889
2166
  ## [1.3.19] - 2020-07-23
1890
2167
 
1891
2168
  ### Fixed
1892
- - preserve backtrace on logging
2169
+
2170
+ - preserve backtrace on logging
1893
2171
 
1894
2172
  ## [1.3.18] - 2020-07-08
1895
2173
 
1896
2174
  ### Fixed
1897
- - the `update` case was missing the code to use the `default_usergroup`
1898
2175
 
2176
+ - the `update` case was missing the code to use the `default_usergroup`
1899
2177
 
1900
2178
  ## [1.3.17] - 2020-07-06
1901
2179
 
1902
2180
  ### Changed
1903
- - the `hris` case should not only include as `leavers` those that have account, but anyone that leaves
1904
- * as we could have active people with no account
2181
+
2182
+ - the `hris` case should not only include as `leavers` those that have account, but anyone that leaves
2183
+ - as we could have active people with no account
2184
+
1905
2185
  ### Fixed
1906
- - `Eco::API::Session::Batch::Errors#errors`: fix error for empty `body` on response
2186
+
2187
+ - `Eco::API::Session::Batch::Errors#errors`: fix error for empty `body` on response
1907
2188
 
1908
2189
  ## [1.3.16] - 2020-06-26
1909
2190
 
1910
2191
  ### Added
1911
- - `Eco::API::Common::People::Entries`, `#entry` & `#find` should allow for `strict` search (added parameter)
2192
+
2193
+ - `Eco::API::Common::People::Entries`, `#entry` & `#find` should allow for `strict` search (added parameter)
2194
+
1912
2195
  ### Changed
1913
- - upgraded `ecoportal-api` gem dependency to minimum version `0.5.7`
1914
- - this includes the removal of some patches
1915
- - some gems update
2196
+
2197
+ - upgraded `ecoportal-api` gem dependency to minimum version `0.5.7`
2198
+ - this includes the removal of some patches
2199
+ - some gems update
2200
+
1916
2201
  ### Fixed
1917
- - patched preferences (`kiosk` preferences should default to `nil`)
2202
+
2203
+ - patched preferences (`kiosk` preferences should default to `nil`)
1918
2204
 
1919
2205
  ## [1.3.15] - 2020-06-11
1920
2206
 
1921
2207
  ### Added
1922
- - default usecase to export to `csv` (`-detailed`) now includes `"Supervisor Name"` column
2208
+
2209
+ - default usecase to export to `csv` (`-detailed`) now includes `"Supervisor Name"` column
2210
+
1923
2211
  ### Changed
1924
2212
 
1925
2213
  ## [1.3.14] - 2020-06-10
1926
2214
 
1927
2215
  ### Added
1928
- - `Eco::API::Common::People::SupervisorHelpers` now has its methods as class methods
2216
+
2217
+ - `Eco::API::Common::People::SupervisorHelpers` now has its methods as class methods
2218
+
1929
2219
  ### Changed
1930
- - upgraded `ecoportal-api` gem dependency to minimum version `0.5.6`
1931
2220
 
2221
+ - upgraded `ecoportal-api` gem dependency to minimum version `0.5.6`
1932
2222
 
1933
2223
  ## [1.3.13] - 2020-05-29
1934
2224
 
1935
2225
  ### Fixed
1936
- - `Eco::API::Organization::TagTree#tag?` to accept `nil` by returning `false`
1937
- - `Eco::API::Common::People::DefaultParsers::DateParser` will parse to `Date` class
1938
- * 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))
2226
+
2227
+ - `Eco::API::Organization::TagTree#tag?` to accept `nil` by returning `false`
2228
+ - `Eco::API::Common::People::DefaultParsers::DateParser` will parse to `Date` class
2229
+ - 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))
2230
+
1939
2231
  ## [1.3.12] - 2020-05-19
1940
2232
 
1941
2233
  ### Changed
1942
- - stop using `email` as `external_id` on `People#person` & `People#find`
1943
- * this should result in more accurate searches when using `:strict` options
2234
+
2235
+ - stop using `email` as `external_id` on `People#person` & `People#find`
2236
+ - this should result in more accurate searches when using `:strict` options
1944
2237
 
1945
2238
  ## [1.3.11] - 2020-05-12
1946
2239
 
1947
2240
  ### Changed
1948
- - remove popping up comments on `Eco::API::Organization::PolicyGroups#`
2241
+
2242
+ - remove popping up comments on `Eco::API::Organization::PolicyGroups#`
1949
2243
 
1950
2244
  ## [1.3.10] - 2020-05-12
1951
2245
 
1952
2246
  ### Added
1953
- - `Eco::API::Organization::PolicyGroups#to_name` added support for `Array` input
1954
- - `config.people.default_usergroup`, when defined, will have effect on usecases: `update` (this case was missing the change)
1955
- * on account creation, if the input file did not specify `policy_group_ids`
2247
+
2248
+ - `Eco::API::Organization::PolicyGroups#to_name` added support for `Array` input
2249
+ - `config.people.default_usergroup`, when defined, will have effect on usecases: `update` (this case was missing the change)
2250
+ - on account creation, if the input file did not specify `policy_group_ids`
1956
2251
 
1957
2252
  ### Fixed
1958
- - `upsert`, `hris` and `create` usecases: fixed condition for use of default_usergroup
2253
+
2254
+ - `upsert`, `hris` and `create` usecases: fixed condition for use of default_usergroup
1959
2255
 
1960
2256
  ## [1.3.9] - 2020-05-12
1961
2257
 
1962
2258
  ### Fixed
1963
2259
 
1964
2260
  - `usecase` callback was not receiving `usecase` paramater
1965
- * as a consequence `Batch::Job` created were missing the `usecase`
2261
+ - as a consequence `Batch::Job` created were missing the `usecase`
1966
2262
 
1967
2263
  ## [1.3.8] - 2020-05-07
1968
2264
 
@@ -1970,26 +2266,26 @@ Specific changes due to eP **release `1.5.9.70`** (_Policy Group Abilities_)
1970
2266
 
1971
2267
  - this change log file
1972
2268
  - `config.people.default_usergroup`, when defined, will have effect on usecases: `create`, `upsert` and `hris`
1973
- * on account creation, if the input file did not specify `policy_group_ids`
2269
+ - on account creation, if the input file did not specify `policy_group_ids`
1974
2270
 
1975
2271
  ### Changed
1976
2272
 
1977
2273
  - `policy` callback to receive new parameter with the `Batch::Job` that it is currently processing/checking
1978
2274
 
1979
- **Example of usage**
2275
+ **Example of usage__
1980
2276
 
1981
2277
  ```ruby
1982
2278
  ASSETS.config.policies do |policies|
1983
- policies.define("update-status") do |people, session, options, policy, job|
1984
- if job.type == :create
1985
- people.each do |person|
1986
- person.details["status"] = "Active" if person.details
1987
- end
1988
- end
1989
- if job.name == "leavers"
1990
- person.details["status"] = "Inactive" if person.details
2279
+ policies.define("update-status") do |people, session, options, policy, job|
2280
+ if job.type == :create
2281
+ people.each do |person|
2282
+ person.details["status"] = "Active" if person.details
1991
2283
  end
1992
2284
  end
2285
+ if job.name == "leavers"
2286
+ person.details["status"] = "Inactive" if person.details
2287
+ end
2288
+ end
1993
2289
  end
1994
2290
  ```
1995
2291