eco-helpers 2.7.13 → 2.7.14

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