eco-helpers 2.7.12 → 2.7.14

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