CHANGELOG.md in eco-helpers-2.7.13 vs CHANGELOG.md in eco-helpers-2.7.14
- old
+ new
@@ -1,1996 +1,2286 @@
# Change Log
+
All notable changes to this project will be documented in this file.
-## [2.7.13] - 2024-06-13
+## [2.7.14] - 2024-06-13
### Added
- - Case `-split-csv`
- - Case `-remap-tags` on people case
### Changed
- - `close_handling_tags_remap_csv` will display table on dry-run too
- - See `Eco::API::UseCases::GraphQL::Samples::Location::Command::TrackChangedIds`
### Fixed
+- `update_tags_remap_table` to build table on **dry-run** too
+ - See `Eco::API::UseCases::GraphQL::Samples::Location::Command::TrackChangedIds`
+
+## [2.7.13] - 2024-06-13
+
+### Added
+
+- Case `-split-csv`
+- Case `-remap-tags` on people case
+
+### Changed
+
+- `close_handling_tags_remap_csv` will display table on dry-run too
+ - See `Eco::API::UseCases::GraphQL::Samples::Location::Command::TrackChangedIds`
+
## [2.7.12] - 2024-05-30
### Changed
- - Decouple `Eco::API::UseCases::Default::People` namespace
+- Decouple `Eco::API::UseCases::Default::People` namespace
+
## [2.7.11] - 2024-05-27
-### Changed\
- - `Eco::API::Common::Session::SFTP#download`
- - It now returns the local filename(s) of the downloaded files.
- - `Eco::API::UseCases::GraphQL::Utils#sftp_download_files`
- - It now returns the local filename(s) of the downloaded files.
+### Changed
+- `Eco::API::Common::Session::SFTP#download`
+- It now returns the local filename(s) of the downloaded files.
+- `Eco::API::UseCases::GraphQL::Utils#sftp_download_files`
+- It now returns the local filename(s) of the downloaded files.
+
## [2.7.10] - 2024-05-20
### Changed
- - Temporarily silent warnings on tracking id changes (apparently the tracking locations tree is not up to date with latest version and gives false warnings)
- - Upgrade SFTP access
+- Temporarily silent warnings on tracking id changes (apparently the tracking locations tree is not up to date with latest version and gives false warnings)
+- Upgrade SFTP access
+
### Fixed
- - Remove enviro from tagtree download
+- Remove enviro from tagtree download
+
## [2.7.9] - 2024-05-16
### Fixed
- - `Eco::Data::Locations::NodeDiff::NodesDiff#unarchive`
- - It must include archived nodes that will receive new children
+- `Eco::Data::Locations::NodeDiff::NodesDiff#unarchive`
+ - It must include archived nodes that will receive new children
+
## [2.7.8] - 2024-05-16
### Added
- - `Eco::API::UseCases::GraphQL::Helpers::Location::Command:Result`
- - Feedback original command.
+- `Eco::API::UseCases::GraphQL::Helpers::Location::Command:Result`
+ - Feedback original command.
+
### Changed
- - upgraded `ecoportal-api-graphql` gem
- - able to skip email via options (`-no-email`)
+- upgraded `ecoportal-api-graphql` gem
+- able to skip email via options (`-no-email`)
+
## [2.7.8] - 2024-05-xx
### Added
- - `Eco::API::UseCases::GraphQL::Helpers::Location::Command:Result`
- - Feedback original command.
+- `Eco::API::UseCases::GraphQL::Helpers::Location::Command:Result`
+ - Feedback original command.
+
### Changed
- - upgraded `ecoportal-api-graphql` gem
- - able to skip email via options (`-no-email`)
+- upgraded `ecoportal-api-graphql` gem
+- able to skip email via options (`-no-email`)
+
### Fixed
## [2.7.7] - 2024-05-16
### Fixed
- - `Eco::API::UseCases::OozeSamples::TargetOozesUpdateCase`
- - default prompt to user to `Y` when in remote mode.
+- `Eco::API::UseCases::OozeSamples::TargetOozesUpdateCase`
+ - default prompt to user to `Y` when in remote mode.
+
## [2.7.6] - 2024-05-16
### Changed
- - upgraded `ecoportal-api-graphql` gem, and `ecoportal-api` gem
- - `Eco::API::Common::People::Entries` (**optimization**)
- - Remove supervisors order
- - It could create cyclic supervisors.
- - `Eco::API::MicroCases#set_supervisor` slight improvemnent to prevent cyclic supers (self + added one to one)
+- upgraded `ecoportal-api-graphql` gem, and `ecoportal-api` gem
+- `Eco::API::Common::People::Entries` (**optimization**)
+ - Remove supervisors order
+ - It could create cyclic supervisors.
+- `Eco::API::MicroCases#set_supervisor` slight improvemnent to prevent cyclic supers (self + added one to one)
+
### Fixed
- - `Eco::API::UseCases::GraphQL::Helpers::Location::Command::Diff::AsUpdate`
- - `classificationIds` should be always an `Array`
+- `Eco::API::UseCases::GraphQL::Helpers::Location::Command::Diff::AsUpdate`
+ - `classificationIds` should be always an `Array`
+
## [2.7.5] - 2024-05-07
### Fixed
- - `Eco::API::UseCases::GraphQL::Utils` typo
+- `Eco::API::UseCases::GraphQL::Utils` typo
+
## [2.7.4] - 2024-05-07
### Fixed
- - Loading of tree diff / update service
+- Loading of tree diff / update service
+
## [2.7.3] - 2024-05-07
### Changed
- - upgraded `ecoportal-api-graphql`
- - Mailer
- - heading of errors and warnings: added **ALL** to state clearly that all warnings and errors come thereon
- - Batch Errors: removed _batch_ wording, as it refers to a single action in the batch
+- upgraded `ecoportal-api-graphql`
+- Mailer
+ - heading of errors and warnings: added **ALL** to state clearly that all warnings and errors come thereon
+- Batch Errors: removed _batch_ wording, as it refers to a single action in the batch
+
### Fixed
- - Tree diff helpers loading (load as if concern)
+- Tree diff helpers loading (load as if concern)
+
## [2.7.2] - 2024-04-23
### Added
- - **Parsers**
- - Native **number parser**, added _warning_ when number cannot be parsed
+- **Parsers**
+ - Native **number parser**, added _warning_ when number cannot be parsed
+
## [2.7.1] - 2024-04-23
### Fixed
- - `Eco::Language::AuxiliaLogger` prioritize `session.logger` in the object scoping process.
+- `Eco::Language::AuxiliaLogger` prioritize `session.logger` in the object scoping process.
+
## [2.7.0] - 2024-04-23
### Added
- - **support** for node **classifications** on
- - `Eco::Data::Locations::NodePlain`
- - `Eco::API::Organization::TagTree`
- - It `downcase` the classification values
- - added class `Eco::API::Organization::NodeClassifications`
- - `#node_classifications` method in `session`, `session.config` and in `config.tagtree`
- - **validation** helpers via locations base case (`Eco::API::UseCases::GraphQL::Helpers::Location::Base::ClassificationsParser`)
- - Use case (**made native**)
- - `-tagtree-upload` => `Eco::API::UseCases::Default::Locations::TagtreeUpload`
- - it can target specific tree via `-structure-id` cli argument
- - it has some **optimizations** such as:
- 1. Only backing up the tree once (before)
- 2. Not graphql querying the tree as a response of each batch commands request
- - 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`)
- - **Tagtree UPDATE** case helpers. Added three service modules for quickly building **custom tagtree update cases**. See:
- 1. `Eco::API::UseCases::GraphQL::Samples::Location::Service::TreeToList`
- 2. `Eco::API::UseCases::GraphQL::Samples::Location::Service::TreeDiff`
- 3. `Eco::API::UseCases::GraphQL::Samples::Location::Command::Service::TreeUpdate`
- - `snake_case` helper (at `Eco::Data::Strings::SnakeCase`)
- - `camel_case` helper (at `Eco::Data::Strings::CamelCase`)
- - `camel_case` helper (at `Eco::Data::Strings::CamelCase`)
- - snake vs camel indifferent access helper (at `Eco::Data::Hashes::SnakeCamelIndifferentAccess`)
- - **Optimization** helper classes to cluster node diffs:
- - `Eco::Data::Locations::NodeDiff::NodesDiff::ClusteredTreeify`: key helper
- - `Eco::Data::Locations::NodeDiff::NodesDiff::DiffsTree`: supporting class.
- - **consistency** (snake vs camel case) on `parentd` for `Eco::Data::Locations::NodeLevel`
- - `Eco::API::UseCases::GraphQL::Utils::Sftp`
- - Configurable `remote_folder`
- - Made **native** location diffs staged command builders
- - These helpers target ONLY location nodes where the `id` are **codes**
- - 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)
- - **Added** class and namespaces under `Eco::API::UseCases::GraphQL::Helpers::Location::Command`
- - `Diff`
- - `Diffs`
- - **SFTP Helpers** review
- - `Eco::API::Common::Session::SFTP#upload` added method
- - `Eco::API::UseCases::GraphQL::Utils::SFTP`
- - `#sftp_download_files` added method
- - `#local_folder` for downloading the files
- - added parameters to the existing methods
-### Changed
- - **Parsers**
- - Native **date parser**, added _warning_ when date cannot be parsed
- - Migrated **select parser** (`Eco::API::Common::People::DefaultParsers::SelectParser`). This change entailed to introduce several changes:
- - Added _warning_ when select option is unknown.
- - `Eco::API::Common::People::PersonParser`:
- 1. methods `#parse` and `#serialize` call to the parser/serializer method by using a block to resolve `Proc` call dependencies.
- 2. **added** method `#select_tables` (this has been moved from the _default parsers_ class to the _person parser_ itself)
- - `Eco::Language::Models::ParserSerializer`
- - methods `#parse` and `#serialize` can be called with a `block` to resolve dependencies.
- - `Eco::CSV::Table` the internal method `to_rows_array` was not spliting `Array` values with pipe operator `|`. Made so it does so.
- - **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)
- - **renamed** use case `-export-tree` to `-tagtree-extract`
- - `Eco::API::UseCases::Default::Locations::TagtreeExtract`
- - **Improved** `Eco::Data::Locations::NodeLevel` by adding support for `classifications` and `classification_names`
- - It just catches the **original header** names, and uses them
- - **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**
+- **support** for node **classifications** on
+ - `Eco::Data::Locations::NodePlain`
- `Eco::API::Organization::TagTree`
- - **changed** `as_json` serialization on **classifications** (it serializes to a `dup` of the `Array` now) - ceased to ~~`join('|')`~~
- - **changed** `as_json`. It now includes `level` (`depth + 1`)
- - **Optimized** life cycle of applying commands to _locations structures_
- - 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.
- - `Eco::API::UseCases::GraphQL::Helpers::Location::Command::DSL`
- - **Added** `#batch_tree_track_mode` to define what tracking mode would be used at each commands stage.
- - 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).
- - `Eco::API::UseCases::GraphQL::Helpers::Location::Command`
- - `#sliced_batches`
- - **added** parameter `track_tree_mode:`
- - **before** final call to `apply_commands`, it scopes the payload `block` of the request (using the new custom method `scope_commands_block`, see below)
- - Decoupled re-configurable (**overridable**) methods into `Optimizations` sub-space: `Eco::API::UseCases::GraphQL::Helpers::Location::Command::Optimizations`
- - `#default_tree_tracking_mode` the fallback tracking mode (besides `#batch_tree_track_mode` on `DLS`)
- - `#scope_commands_block` based on the current tree tracking mode, it scopes what the block for the apply commands payload will be
- - `#commands_payload_without_structure_block`: sample graphql payload block that does NOT retrieve the locations structure (**optimization lies here**)
- - `Eco::API::UseCases::GraphQL::Samples::Location::Command::Results`
- - **Decoupled** tracking of changed ids into `Eco::API::UseCases::GraphQL::Samples::Location::Command::TrackChangedIds`
- - `#update_tags_remap_table` -> remove `:move` stage tracking
- - 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)
- - `Eco::Data::Locations::NodeDiff`
- - `archived?` added parameter for **validation** (default `true`)
- - `attr_expose`
- - It adds `_prev` as a postfix (**removed** as a prefix ~~`prev_`~~)
- - It uses the question mark `?` alone (**removed** ~~`diff_`~~ prefix)
- - **added** all these methods support now `snake_case`
- - **BREAKING** change to move onto **RS P3 post-release**
- - A change of `name?` **WON'T** trigger a change of `id` (`nodeId`) any more
- - For this reason, identification on changes on the `id` will be besides changes of the `name`
- - `Eco::Data::Locations::NodeDiff::NodesDiff`- **Important change** on `#diffs` (core property)
- - It now discards diffs that `insert?` and `archive?` as well, provided that they do not generate updates
- - **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)
- - `Eco::Data::Hashes::DiffResult`
- - moved `Meta` under its namespace
- - created _private_ unique points to access source hashes. This will allows to extend the behaviour from child classes
- - **Moved** hash accessors (**DSL**) to `Eco::Data::Hashes::DiffResult::Meta`
- - also **added** method `key_present?`
- - **improved** `slice_attrs` to return `nil` if `src` isn't present.
- - **added** `Array` comparizon via `eq?` method.
- - (Class) **Added** named arg `when_present` to `compare` class method.
- - (Instance) **Removed** unused method `compared_attrs`
- - **Replaced by** `all_compared_attrs`
- - (Class) **Added** `compared_attrs_when_present`
- - (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`)
- - This is supported by the **new** method `key_present_in_both?`
- - (Instance) **Modified** behaviour on `diff_attrs` provided that takes into consideration if an `attr` is **comparable** (`comparable_attr?`)
- - upgrade **gems** `ecoportal-api-v2` and `ecoportal-api-graphql`
- - this brings some optimizations when treeifying locations structures
- - `Eco::Data::Hashes::ArrayDiff`
- - **Removed** unused method `compared_attrs`
+ - It `downcase` the classification values
+ - added class `Eco::API::Organization::NodeClassifications`
+ - `#node_classifications` method in `session`, `session.config` and in `config.tagtree`
+ - **validation** helpers via locations base case (`Eco::API::UseCases::GraphQL::Helpers::Location::Base::ClassificationsParser`)
+- Use case (**made native**)
+ - `-tagtree-upload` => `Eco::API::UseCases::Default::Locations::TagtreeUpload`
+ - it can target specific tree via `-structure-id` cli argument
+ - it has some **optimizations** such as:
+ 1. Only backing up the tree once (before)
+ 2. Not graphql querying the tree as a response of each batch commands request
+- 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`)
+- **Tagtree UPDATE** case helpers. Added three service modules for quickly building **custom tagtree update cases**. See:
+ 1. `Eco::API::UseCases::GraphQL::Samples::Location::Service::TreeToList`
+ 2. `Eco::API::UseCases::GraphQL::Samples::Location::Service::TreeDiff`
+ 3. `Eco::API::UseCases::GraphQL::Samples::Location::Command::Service::TreeUpdate`
+- `snake_case` helper (at `Eco::Data::Strings::SnakeCase`)
+- `camel_case` helper (at `Eco::Data::Strings::CamelCase`)
+- `camel_case` helper (at `Eco::Data::Strings::CamelCase`)
+- snake vs camel indifferent access helper (at `Eco::Data::Hashes::SnakeCamelIndifferentAccess`)
+- **Optimization** helper classes to cluster node diffs:
+ - `Eco::Data::Locations::NodeDiff::NodesDiff::ClusteredTreeify`: key helper
+ - `Eco::Data::Locations::NodeDiff::NodesDiff::DiffsTree`: supporting class.
+- **consistency** (snake vs camel case) on `parentd` for `Eco::Data::Locations::NodeLevel`
+- `Eco::API::UseCases::GraphQL::Utils::Sftp`
+ - Configurable `remote_folder`
+- Made **native** location diffs staged command builders
+ - These helpers target ONLY location nodes where the `id` are **codes**
+ - 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)
+ - **Added** class and namespaces under `Eco::API::UseCases::GraphQL::Helpers::Location::Command`
+ - `Diff`
+ - `Diffs`
+- **SFTP Helpers** review
+ - `Eco::API::Common::Session::SFTP#upload` added method
+ - `Eco::API::UseCases::GraphQL::Utils::SFTP`
+ - `#sftp_download_files` added method
+ - `#local_folder` for downloading the files
+ - added parameters to the existing methods
+### Changed
+
+- **Parsers**
+ - Native **date parser**, added _warning_ when date cannot be parsed
+ - Migrated **select parser** (`Eco::API::Common::People::DefaultParsers::SelectParser`). This change entailed to introduce several changes:
+ - Added _warning_ when select option is unknown.
+ - `Eco::API::Common::People::PersonParser`:
+ 1. methods `#parse` and `#serialize` call to the parser/serializer method by using a block to resolve `Proc` call dependencies.
+ 2. **added** method `#select_tables` (this has been moved from the _default parsers_ class to the _person parser_ itself)
+ - `Eco::Language::Models::ParserSerializer`
+ - methods `#parse` and `#serialize` can be called with a `block` to resolve dependencies.
+- `Eco::CSV::Table` the internal method `to_rows_array` was not spliting `Array` values with pipe operator `|`. Made so it does so.
+ - **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)
+- **renamed** use case `-export-tree` to `-tagtree-extract`
+ - `Eco::API::UseCases::Default::Locations::TagtreeExtract`
+- **Improved** `Eco::Data::Locations::NodeLevel` by adding support for `classifications` and `classification_names`
+ - It just catches the **original header** names, and uses them
+ - **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**
+- `Eco::API::Organization::TagTree`
+ - **changed** `as_json` serialization on **classifications** (it serializes to a `dup` of the `Array` now) - ceased to ~~`join('|')`~~
+ - **changed** `as_json`. It now includes `level` (`depth + 1`)
+- **Optimized** life cycle of applying commands to _locations structures_
+ - 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.
+ - `Eco::API::UseCases::GraphQL::Helpers::Location::Command::DSL`
+ - **Added** `#batch_tree_track_mode` to define what tracking mode would be used at each commands stage.
+ - 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).
+ - `Eco::API::UseCases::GraphQL::Helpers::Location::Command`
+ - `#sliced_batches`
+ - **added** parameter `track_tree_mode:`
+ - **before** final call to `apply_commands`, it scopes the payload `block` of the request (using the new custom method `scope_commands_block`, see below)
+ - Decoupled re-configurable (**overridable**) methods into `Optimizations` sub-space: `Eco::API::UseCases::GraphQL::Helpers::Location::Command::Optimizations`
+ - `#default_tree_tracking_mode` the fallback tracking mode (besides `#batch_tree_track_mode` on `DLS`)
+ - `#scope_commands_block` based on the current tree tracking mode, it scopes what the block for the apply commands payload will be
+ - `#commands_payload_without_structure_block`: sample graphql payload block that does NOT retrieve the locations structure (**optimization lies here**)
+- `Eco::API::UseCases::GraphQL::Samples::Location::Command::Results`
+ - **Decoupled** tracking of changed ids into `Eco::API::UseCases::GraphQL::Samples::Location::Command::TrackChangedIds`
+ - `#update_tags_remap_table` -> remove `:move` stage tracking
+ - 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)
+- `Eco::Data::Locations::NodeDiff`
+ - `archived?` added parameter for **validation** (default `true`)
+ - `attr_expose`
+ - It adds `_prev` as a postfix (**removed** as a prefix ~~`prev_`~~)
+ - It uses the question mark `?` alone (**removed** ~~`diff_`~~ prefix)
+ - **added** all these methods support now `snake_case`
+ - **BREAKING** change to move onto **RS P3 post-release**
+ - A change of `name?` **WON'T** trigger a change of `id` (`nodeId`) any more
+ - For this reason, identification on changes on the `id` will be besides changes of the `name`
+- `Eco::Data::Locations::NodeDiff::NodesDiff`- **Important change** on `#diffs` (core property)
+ - It now discards diffs that `insert?` and `archive?` as well, provided that they do not generate updates
+ - **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)
+- `Eco::Data::Hashes::DiffResult`
+ - moved `Meta` under its namespace
+ - created _private_ unique points to access source hashes. This will allows to extend the behaviour from child classes
+ - **Moved** hash accessors (**DSL**) to `Eco::Data::Hashes::DiffResult::Meta`
+ - also **added** method `key_present?`
+ - **improved** `slice_attrs` to return `nil` if `src` isn't present.
+ - **added** `Array` comparizon via `eq?` method.
+ - (Class) **Added** named arg `when_present` to `compare` class method.
+ - (Instance) **Removed** unused method `compared_attrs`
+ - **Replaced by** `all_compared_attrs`
+ - (Class) **Added** `compared_attrs_when_present`
+ - (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`)
+ - This is supported by the **new** method `key_present_in_both?`
+ - (Instance) **Modified** behaviour on `diff_attrs` provided that takes into consideration if an `attr` is **comparable** (`comparable_attr?`)
+- upgrade **gems** `ecoportal-api-v2` and `ecoportal-api-graphql`
+ - this brings some optimizations when treeifying locations structures
+- `Eco::Data::Hashes::ArrayDiff`
+ - **Removed** unused method `compared_attrs`
+
### Fixed
- - upgrade `ecoportal-api-v2` **gem**
- - A bunch of small things on the `Eco::Data::Locations` namespace
- - `Eco::API::Session::Config#live_trees` to choose a tree when only one
- - `Eco::API::UseCases::GraphQL::Helpers::Location::Base`
- - `tagtree_id` method should `map` values rather than `select` keys on `options`
- - `Eco::Data::Locations::NodeDiff::NodesDiff`
- - fix `diffs_summary` lining
- - `Eco::Language::Methods::DslAble`
- - explicit behaviour for `respond_to_missing?` (dsl doesn't need to allow method capturing via `method` call)
- - add `__FILE__` and `__LINE__` to error backtrace on `eval`
- - Parsing `archived` value in
- - `Eco::API::Organization::TagTree`
- - `Eco::Data::Locations::NodePlain`
+- upgrade `ecoportal-api-v2` **gem**
+- A bunch of small things on the `Eco::Data::Locations` namespace
+- `Eco::API::Session::Config#live_trees` to choose a tree when only one
+- `Eco::API::UseCases::GraphQL::Helpers::Location::Base`
+ - `tagtree_id` method should `map` values rather than `select` keys on `options`
+- `Eco::Data::Locations::NodeDiff::NodesDiff`
+ - fix `diffs_summary` lining
+- `Eco::Language::Methods::DslAble`
+ - explicit behaviour for `respond_to_missing?` (dsl doesn't need to allow method capturing via `method` call)
+ - add `__FILE__` and `__LINE__` to error backtrace on `eval`
+- Parsing `archived` value in
+ - `Eco::API::Organization::TagTree`
+ - `Eco::Data::Locations::NodePlain`
+
## [2.6.4] - 2024-03-06
### Changed
- - updated core **gem** `ecoportal-api`
- - The `subordinates` core people property has been removed from the back-end
- - This was due to some performance issues with org hierarchy model.
- - As a consequence a temporary patch has been added temporarily in the current gem.
+- updated core **gem** `ecoportal-api`
+- The `subordinates` core people property has been removed from the back-end
+ - This was due to some performance issues with org hierarchy model.
+ - As a consequence a temporary patch has been added temporarily in the current gem.
+
### Fixed
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
- - initialize `@total_search_results`
+- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
+ - initialize `@total_search_results`
+
## [2.6.3] - 2024-02-29
### Changed
- - upgrade `ecoportal-api-v2` **gem**
+- upgrade `ecoportal-api-v2` **gem**
+
### Fixed
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
- - `dry_run_feedback` fixed typo
+- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
+ - `dry_run_feedback` fixed typo
+
## [2.6.2] - 2024-02-23
### Added
- - `Eco::API::Session::Config::TagTree`: added **benchmarks** to locations structure live retrieval
- - To all **Ooze** cases that use register update
- - `Eco::API::UseCases::OozeSamples::Helpers::Creatable` native helpers
- - to draft entries
- - `Eco::API::UseCases::OozeSamples::RegisterMigrationCase` -> removed code double-up due to this addition to the register update case.
- - `Eco::API::Common::Loaders::Base` added **methods**
- - `#simulate?` and `#dry_run?`
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
- - added **kpis** attempted updates and attempted creations
+- `Eco::API::Session::Config::TagTree`: added **benchmarks** to locations structure live retrieval
+- To all **Ooze** cases that use register update
+ - `Eco::API::UseCases::OozeSamples::Helpers::Creatable` native helpers
+ - to draft entries
+ - `Eco::API::UseCases::OozeSamples::RegisterMigrationCase` -> removed code double-up due to this addition to the register update case.
+- `Eco::API::Common::Loaders::Base` added **methods**
+ - `#simulate?` and `#dry_run?`
+- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
+ - added **kpis** attempted updates and attempted creations
+
### Changed
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
- - `#main` allows to tell it to just `yield`
+- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
+ - `#main` allows to tell it to just `yield`
+
### Fixed
- - `Eco::Data::Locations::NodeDiff::Selectors` `any?` (typo)
- - `Eco::API::UseCases::OozeSamples::TargetOozesUpdateCase`
- - fixed **kpis** tracking
+- `Eco::Data::Locations::NodeDiff::Selectors` `any?` (typo)
+- `Eco::API::UseCases::OozeSamples::TargetOozesUpdateCase`
+ - fixed **kpis** tracking
+
## [2.6.1] - 2024-02-11
### Added
- - For use case `Eco::API::UseCases::Default::Locations::TagtreeExtract`
- - New `-indent` option
- - `Eco::API::UseCases::UseCase`
- - Defines on loader object attr reader methods `people`, `input` and `usecase` unless they already exist.
- - Some class / method helpers
- - `Eco::Language::Methods::DelegateMissing` to redirect missing methods to one object
- - `Eco::Language::Methods::DslAble` to allow direct method calls on blocks
- - `Eco::Language::Klass:WhenInherited` to allow to defined a block that gets called when the class is inherited
- - **DSL** capabilities (for block calls) for
- - `Eco::API::Session::Batch::BasePolicy`
- - `Eco::API::Session::Batch::Job`
- - `api_excluded` block to be called in the Job's context
- - `Eco::API::UseCases::BaseIO`
- - This shortens code lines in workflow blocks
- - `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.
- - **NEW** Loaders
- - `Eco::API::Custom::Config` (**DSL** alike) allows to open up configuration via class
- - Redirects to `Eco::API::Common::Loaders::Config`
- - 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.
- - `Eco::API::Custom::Workflow` (**DSL** alike) allows to open up workflow configurations via class
- - Redirects to `Eco::API::Common::Loaders::Config::Workflow`
- - `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.
- - Redirects to `Eco::API::Common::Loaders::Config::Workflow::Mailer`
- - `Eco::Assets#cli` able to yield the `cli` to a block
- - `Eco::API::UseCases::BaseIO#process_case`
- - **added method** `process_case`, which allows to pass the `io` itself as a paramter.
- - When this is used, the `output` swap as `input` / `people` is performed (before and after).
-### Changed
- - **IMPORTANT** overriden `Object#inspect` to `to_s` to prevent recursive deep introspection of object internals on `MethodError`
- - `Eco::API::Common::Loaders::CaseBase`
- - **removed** attr `usecase`
+- For use case `Eco::API::UseCases::Default::Locations::TagtreeExtract`
+ - New `-indent` option
+- `Eco::API::UseCases::UseCase`
+ - Defines on loader object attr reader methods `people`, `input` and `usecase` unless they already exist.
+- Some class / method helpers
+ - `Eco::Language::Methods::DelegateMissing` to redirect missing methods to one object
+ - `Eco::Language::Methods::DslAble` to allow direct method calls on blocks
+ - `Eco::Language::Klass:WhenInherited` to allow to defined a block that gets called when the class is inherited
+- **DSL** capabilities (for block calls) for
+ - `Eco::API::Session::Batch::BasePolicy`
+ - `Eco::API::Session::Batch::Job`
+ - `api_excluded` block to be called in the Job's context
- `Eco::API::UseCases::BaseIO`
- - `output` can be set on initialization
- - `#new` carries the `output` as well.
- - `Eco::API::Session::Config::Workflow`
- - `#run`
- - 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.
- - 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`)
- - `#for`
- - **now** it only requires a `block` if no `key` is provided
- - `Eco::Data::Locations::NodeBase::TagValidations`
- - made module re-usable, by removing dependency on `clean_id` method.
- - Improved the **patch** on exception that adds method `#patch_full_message`
- - Parameter `trace_count` added (`default: -1` for full trace)
+ - This shortens code lines in workflow blocks
+ - `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.
+- **NEW** Loaders
+ - `Eco::API::Custom::Config` (**DSL** alike) allows to open up configuration via class
+ - Redirects to `Eco::API::Common::Loaders::Config`
+ - 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.
+ - `Eco::API::Custom::Workflow` (**DSL** alike) allows to open up workflow configurations via class
+ - Redirects to `Eco::API::Common::Loaders::Config::Workflow`
+ - `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.
+ - Redirects to `Eco::API::Common::Loaders::Config::Workflow::Mailer`
+- `Eco::Assets#cli` able to yield the `cli` to a block
+- `Eco::API::UseCases::BaseIO#process_case`
+ - **added method** `process_case`, which allows to pass the `io` itself as a paramter.
+ - When this is used, the `output` swap as `input` / `people` is performed (before and after).
+### Changed
+
+- **IMPORTANT** overriden `Object#inspect` to `to_s` to prevent recursive deep introspection of object internals on `MethodError`
+- `Eco::API::Common::Loaders::CaseBase`
+ - **removed** attr `usecase`
+- `Eco::API::UseCases::BaseIO`
+ - `output` can be set on initialization
+ - `#new` carries the `output` as well.
+- `Eco::API::Session::Config::Workflow`
+ - `#run`
+ - 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.
+ - 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`)
+ - `#for`
+ - **now** it only requires a `block` if no `key` is provided
+ - `Eco::Data::Locations::NodeBase::TagValidations`
+ - made module re-usable, by removing dependency on `clean_id` method.
+- Improved the **patch** on exception that adds method `#patch_full_message`
+ - Parameter `trace_count` added (`default: -1` for full trace)
+
### Fixed
- - `Eco::Data::Locations::NodeBase::Treeify`
- - **bug** on strings and interpolation when building the warning/error messages
- - **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.
- - 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`).
- - It now gathers those separated subtrees in an `Array` parameter called `unlinked_trees`
- - `Eco::API::Session::Config::Workflow`
- - Returning an `Eco::API::UseCases::BaseIO` from callbacks `before`, `after` and `run` would raise an `ArgumentError`.
- - **Now** the original `io` is returned otherwise the returned value is a `BaseIO`
- - `Eco::API::Session::Config::Workflow`
- - **changed** `open` to alias method for `with` (open was clashing)
- - `Eco::API::UseCases::GraphQL::Helpers::Location::Base`
- - **removed** `enviro` param for org tagtree built
- - `Eco::API::UseCases::Cli::DSL`
- - `::callback` was not acting like a DSL method, which would just return `nil` always (lost `block`)
- - 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.
- - `Eco::Data::Locations::NodePlain`
- - `serializer` referred to an non existing constant.
- - **IMPORTANT** `parent_id` should be `cleaned` as well. Otherwise parents with an id cleanage don't match their children's `parent_id`
- - `Eco::API::Common::ClassHelpers`
- - `::inerited` method must call `super` to be able to chain other calls
- - `Eco::API::Common::Session::Mailer`
- - The logging message was not printing who the email was sent to.
+- `Eco::Data::Locations::NodeBase::Treeify`
+ - **bug** on strings and interpolation when building the warning/error messages
+ - **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.
+ - 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`).
+ - It now gathers those separated subtrees in an `Array` parameter called `unlinked_trees`
+- `Eco::API::Session::Config::Workflow`
+ - Returning an `Eco::API::UseCases::BaseIO` from callbacks `before`, `after` and `run` would raise an `ArgumentError`.
+ - **Now** the original `io` is returned otherwise the returned value is a `BaseIO`
+- `Eco::API::Session::Config::Workflow`
+ - **changed** `open` to alias method for `with` (open was clashing)
+- `Eco::API::UseCases::GraphQL::Helpers::Location::Base`
+ - **removed** `enviro` param for org tagtree built
+- `Eco::API::UseCases::Cli::DSL`
+ - `::callback` was not acting like a DSL method, which would just return `nil` always (lost `block`)
+ - 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.
+- `Eco::Data::Locations::NodePlain`
+ - `serializer` referred to an non existing constant.
+ - **IMPORTANT** `parent_id` should be `cleaned` as well. Otherwise parents with an id cleanage don't match their children's `parent_id`
+- `Eco::API::Common::ClassHelpers`
+ - `::inerited` method must call `super` to be able to chain other calls
+- `Eco::API::Common::Session::Mailer`
+ - The logging message was not printing who the email was sent to.
+
## [2.6.0] - 2024-02-03
### Added
- - New use case to `-export-tree` (**tagtree extract**)
- - `Eco::API::UseCases::Default::Locations::TagtreeExtract`
- - `Eco::API::UseCases::UseCase`
- - added `#classed_definition` to expose the original class definition
- - injected further parameter as instance variables to the original class definition on run-time.
- - Expose `live_trees` retrieval:
- - `Eco::API::Session#live_trees`
- - `Eco::API::Session::Config#live_trees`
- - Ability to CLI-integrate use cases and their options via class
- - `Eco::API::UseCases::Cli`
- - Added use case to extract live locations structure (`-export-tree`)
- - `Eco::API::UseCases::GraphQL::Cases::TagtreeExtract`
- - `#api?` method to check if an API version is available
- - `Eco::API::Common::Session::Environment#api?`
- - `Eco::API::Common::Session::BaseSession#api?`
- - `Eco::API::Organization::TagTree#merge` the merge method for tagtrees
- - It allows to have all structure nodes available to check if a tag belongs to them
- - `Eco::API::Session::Config::Workflow`
- - **added** `open` alias method for `for`
- - `Eco::Data::Mapper#self_mapped?` to check if a value maps to itself
+- New use case to `-export-tree` (**tagtree extract**)
+ - `Eco::API::UseCases::Default::Locations::TagtreeExtract`
+- `Eco::API::UseCases::UseCase`
+ - added `#classed_definition` to expose the original class definition
+ - injected further parameter as instance variables to the original class definition on run-time.
+- Expose `live_trees` retrieval:
+ - `Eco::API::Session#live_trees`
+ - `Eco::API::Session::Config#live_trees`
+- Ability to CLI-integrate use cases and their options via class
+ - `Eco::API::UseCases::Cli`
+- Added use case to extract live locations structure (`-export-tree`)
+ - `Eco::API::UseCases::GraphQL::Cases::TagtreeExtract`
+- `#api?` method to check if an API version is available
+ - `Eco::API::Common::Session::Environment#api?`
+ - `Eco::API::Common::Session::BaseSession#api?`
+- `Eco::API::Organization::TagTree#merge` the merge method for tagtrees
+ - It allows to have all structure nodes available to check if a tag belongs to them
+- `Eco::API::Session::Config::Workflow`
+ - **added** `open` alias method for `for`
+- `Eco::Data::Mapper#self_mapped?` to check if a value maps to itself
+
### Changed
- - upgrade `ecoportal-api-graphql`, `ecoportal-api-v2` and `ecoportal-api`
- - `Eco::API::Session#tagtree`: added parameters to be able to obtain:
- - `:live` live trees if graphql api is available on the enviro
- - `:merge` to merge all live trees if there isn't just one
- - Tagtree retrieval: remove `enviro` param where there's no caching
- - Removed also from `Eco::API::Organization::TagTree::new`
- - Removed some use cases:
- - `Eco::API::UseCases::DefaultCases::AbstractPolicyGroupAbilities`
- - `Eco::API::UseCases::DefaultCases::AppendUsergroupsCase`
- - `Eco::API::UseCases::DefaultCases::CreateDetailsCase`
- - `Eco::API::UseCases::DefaultCases::CreateDetailsWithSupervisorCase`
- - `Eco::API::UseCases::DefaultCases::EmailAsIdCase`
- - `Eco::API::UseCases::DefaultCases::NewIdCase`
- - `Eco::API::UseCases::DefaultCases::RemoveAccountSyncCase`
- - `Eco::API::UseCases::DefaultCases::RemoveAccountTransCase`
- - `Eco::API::UseCases::DefaultCases::NewEmailCase`
- - `Eco::API::UseCases::DefaultCases::SetSupervisorCase`
- - `Eco::API::UseCases::DefaultCases::TagTree`
- - `Eco::API::UseCases::DefaultCases::UpdateDetailsCase`
- - `Eco::API::UseCases::DefaultCases::ResetLandingPageCase`
- - Moved some default use cases to new namespace `Eco::API::UseCases::Default`
+- upgrade `ecoportal-api-graphql`, `ecoportal-api-v2` and `ecoportal-api`
+- `Eco::API::Session#tagtree`: added parameters to be able to obtain:
+ - `:live` live trees if graphql api is available on the enviro
+ - `:merge` to merge all live trees if there isn't just one
+- Tagtree retrieval: remove `enviro` param where there's no caching
+ - Removed also from `Eco::API::Organization::TagTree::new`
+- Removed some use cases:
+ - `Eco::API::UseCases::DefaultCases::AbstractPolicyGroupAbilities`
+ - `Eco::API::UseCases::DefaultCases::AppendUsergroupsCase`
+ - `Eco::API::UseCases::DefaultCases::CreateDetailsCase`
+ - `Eco::API::UseCases::DefaultCases::CreateDetailsWithSupervisorCase`
+ - `Eco::API::UseCases::DefaultCases::EmailAsIdCase`
+ - `Eco::API::UseCases::DefaultCases::NewIdCase`
+ - `Eco::API::UseCases::DefaultCases::RemoveAccountSyncCase`
+ - `Eco::API::UseCases::DefaultCases::RemoveAccountTransCase`
+ - `Eco::API::UseCases::DefaultCases::NewEmailCase`
+ - `Eco::API::UseCases::DefaultCases::SetSupervisorCase`
+ - `Eco::API::UseCases::DefaultCases::TagTree`
+ - `Eco::API::UseCases::DefaultCases::UpdateDetailsCase`
+ - `Eco::API::UseCases::DefaultCases::ResetLandingPageCase`
+- Moved some default use cases to new namespace `Eco::API::UseCases::Default`
+
### Fixed
- - Compatibility with `ruby 3`
- - replaced `Proc.new` (with no block) by `block` in methods
- - replaced `File#exists?` by `File#exist?`
- - call to method's `super` not specifying args, no longer passes keyed/named args via simple splat `*` (but only double splat `**`)
- - limit `nokogiri` gem to prev `1.16` (as it requires ruby 3 from thereon)
- - `Eco::API::Common::People::PersonEntryAttributeMapper`
- - `#aliased_attrs` was missing internal attrs that have been mapped directly as external attrs (same ext attr name as int attr name)
+- Compatibility with `ruby 3`
+ - replaced `Proc.new` (with no block) by `block` in methods
+ - replaced `File#exists?` by `File#exist?`
+ - call to method's `super` not specifying args, no longer passes keyed/named args via simple splat `*` (but only double splat `**`)
+- limit `nokogiri` gem to prev `1.16` (as it requires ruby 3 from thereon)
+- `Eco::API::Common::People::PersonEntryAttributeMapper`
+ - `#aliased_attrs` was missing internal attrs that have been mapped directly as external attrs (same ext attr name as int attr name)
+
## [2.5.10] - 2023-11-22
### Fixed
- - `Eco::API::UseCases::DefaultCases::ReinviteSyncCase` remove unnecessary additional parameters on call.
- - `Eco::API::Session::Config::SFTP#enviro_subpaths` provided that a current workaround can be skipped
+- `Eco::API::UseCases::DefaultCases::ReinviteSyncCase` remove unnecessary additional parameters on call.
+- `Eco::API::Session::Config::SFTP#enviro_subpaths` provided that a current workaround can be skipped
+
## [2.5.9] - 2023-09-05
The input **csv** of trees could come very compacted, which had unintended consequences.
- - This is a fix to this scenario.
+- This is a fix to this scenario.
+
### Added
- - `Eco::Data::Locations::NodeLevel#raw_latest_consecutive_top_empty_level`
- - To scope the missing ancestors (up to what level)
- - `Eco::API::UseCases::DefaultCases::Samples::Sftp`
- - Options for `remote_subfolder`, `remote_target_folder` and `remote_folder`
- - `Eco::API::Organization::People#updated_or_created` **method**
- - Scoping all people that have been updated as part of the current session.
- - Note that it includes also those that are hris excluded.
- - **Improvement** on `Eco::API::Common::Loaders::Base`
- - Should be able to call `log(:level) { "Some message" }`
+- `Eco::Data::Locations::NodeLevel#raw_latest_consecutive_top_empty_level`
+ - To scope the missing ancestors (up to what level)
+- `Eco::API::UseCases::DefaultCases::Samples::Sftp`
+ - Options for `remote_subfolder`, `remote_target_folder` and `remote_folder`
+- `Eco::API::Organization::People#updated_or_created` **method**
+ - Scoping all people that have been updated as part of the current session.
+ - Note that it includes also those that are hris excluded.
+- **Improvement** on `Eco::API::Common::Loaders::Base`
+ - Should be able to call `log(:level) { "Some message" }`
+
### Changed
- - `Eco::Data::Locations::NodeLevel`
- - **removed** `#merge!` and `#override_upper_levels`
- - `#override_lower_levels` **renamed** to `#update_lower_levels`
- - `Eco::API::UseCases::DefaultCases::CsvToTree` use case
- - Moved to work with `Eco::Data::Locations::DSL`
- - **Removed** helpers double-ups.
- - Default workflow `on(:report)`: implementation of `-processed-people-to-csv`
- - It now only includes people created or updated as part of the current session.
- - **Improvement**: `Eco::API::Common::Loaders::Parser` made `serializer` method **not required**
- - This aims to use the default serializer definition
- - Made **inheritable** `parsing_phase` and `serializing_phase`
+- `Eco::Data::Locations::NodeLevel`
+ - **removed** `#merge!` and `#override_upper_levels`
+ - `#override_lower_levels` **renamed** to `#update_lower_levels`
+- `Eco::API::UseCases::DefaultCases::CsvToTree` use case
+ - Moved to work with `Eco::Data::Locations::DSL`
+ - **Removed** helpers double-ups.
+- Default workflow `on(:report)`: implementation of `-processed-people-to-csv`
+ - It now only includes people created or updated as part of the current session.
+- **Improvement**: `Eco::API::Common::Loaders::Parser` made `serializer` method **not required**
+ - This aims to use the default serializer definition
+ - Made **inheritable** `parsing_phase` and `serializing_phase`
+
### Fixed
- - `Eco::Data::Locations::NodeLevel#update_lower_levels`
- - To use `#raw_latest_consecutive_top_empty_level`
- - Compact from first filled in `tags_array` onwards (preserve empty tags at the beginning for clean validation)
- - `Eco::Data::Locations::NodeLevel::Cleaner`
- - `#tidy_nodes` **gap** calculation is scoped against previous node (common ancestors)
- - `#fill_in_parents` to give feedback on unexpected parental relationship
- - `Eco::API::UseCases::DefaultCases::Samples::Sftp`
- - Prevent double slashed paths
+- `Eco::Data::Locations::NodeLevel#update_lower_levels`
+ - To use `#raw_latest_consecutive_top_empty_level`
+ - Compact from first filled in `tags_array` onwards (preserve empty tags at the beginning for clean validation)
+- `Eco::Data::Locations::NodeLevel::Cleaner`
+ - `#tidy_nodes` **gap** calculation is scoped against previous node (common ancestors)
+ - `#fill_in_parents` to give feedback on unexpected parental relationship
+- `Eco::API::UseCases::DefaultCases::Samples::Sftp`
+ - Prevent double slashed paths
+
## [2.5.8] - 2023-08-28
### Changed
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
- - Deafult prompt should be `Yes` on **remote**
+- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
+ - Deafult prompt should be `Yes` on **remote**
+
## [2.5.7] - 2023-08-15
### Added
- - `Eco::API::Session::Config#tagtree_id=` allows to define a target structure id
- - This is for `live` retrieval of tagtree on people sync processes
- - It only makes sense if graphql credentials are configured
+- `Eco::API::Session::Config#tagtree_id=` allows to define a target structure id
+ - This is for `live` retrieval of tagtree on people sync processes
+ - It only makes sense if graphql credentials are configured
+
## [2.5.6] - 2023-08-14
### Changed
- - `Eco::API::Session::Config::Tagtree#live_tree` remove memmoize tree: it now always trigger a query to the back-end
- - Better messaging to know what's going on.
+- `Eco::API::Session::Config::Tagtree#live_tree` remove memmoize tree: it now always trigger a query to the back-end
+ - Better messaging to know what's going on.
+
### Fixed
- - `Eco::API::Session#live_tree` was not forwarding target structure id `id`
- - `Eco::Data::Locations::NodeLevel#override_lower_levels`
- - By **default** should only override empty upper levels
- - `Eco::Data::Locations::NodeLevel::Cleaner`
- - `#tidy_nodes` when **gap** (merged parent) identified, `level` is still correct
- - `Eco::Data::Locations::NodeLevel`
- - `#nodes_from_csv` correctly identify parent with big gaps
- - This fix ensures a correct normalization
- - `Eco::API::UseCases::GraphQL::Samples::Location::Command::Result`
- - **Batch remap tags** _built_ requires full path to keep from-filter specificity
- - This change also wraps into a new class the remap tags table.
+- `Eco::API::Session#live_tree` was not forwarding target structure id `id`
+- `Eco::Data::Locations::NodeLevel#override_lower_levels`
+ - By **default** should only override empty upper levels
+- `Eco::Data::Locations::NodeLevel::Cleaner`
+ - `#tidy_nodes` when **gap** (merged parent) identified, `level` is still correct
+- `Eco::Data::Locations::NodeLevel`
+ - `#nodes_from_csv` correctly identify parent with big gaps
+ - This fix ensures a correct normalization
+- `Eco::API::UseCases::GraphQL::Samples::Location::Command::Result`
+ - **Batch remap tags** _built_ requires full path to keep from-filter specificity
+ - This change also wraps into a new class the remap tags table.
+
## [2.5.5] - 2023-08-03
### Added
- - `Eco::API::Organization::TagTree` - **added/improved methods**
- - `#as_json` new parameter `max_depth:` to be able to cut the tree
- - `#active_tree` new method to exclude archived nodes.
- - `#truncate` new method to obtain a tree cut to `max_depth:`
- - `Eco::API::Session::Config::Tagtree`: **exposed** `include_archived:` (a.k.a. `inludeArchivedNodes`).
- - This change states that `session.tagtree` does not retrieve archived nodes by default, while `session.live_tree` does retrieve archived nodes.
- - This change required an update on the `ecoportal-api-graphql` **gem**
+- `Eco::API::Organization::TagTree` - **added/improved methods**
+ - `#as_json` new parameter `max_depth:` to be able to cut the tree
+ - `#active_tree` new method to exclude archived nodes.
+ - `#truncate` new method to obtain a tree cut to `max_depth:`
+- `Eco::API::Session::Config::Tagtree`: **exposed** `include_archived:` (a.k.a. `inludeArchivedNodes`).
+ - This change states that `session.tagtree` does not retrieve archived nodes by default, while `session.live_tree` does retrieve archived nodes.
+ - This change required an update on the `ecoportal-api-graphql` **gem**
+
### Fixed
- - `Eco::API::Organization::TagTree#path` - dups the result (rather than exposing the internal path array)
+- `Eco::API::Organization::TagTree#path` - dups the result (rather than exposing the internal path array)
+
## [2.5.4] - 2023-07-27
### Added
- - SFTP case helpers: `Eco::API::UseCases::GraphQL::Utils::Sftp`
- - `Eco::Data::Locations::NodeDiff` and `Eco::Data::Locations::NodeDiff::NodeDiffs`
- - Aim to identify changes in the locations structure
+- SFTP case helpers: `Eco::API::UseCases::GraphQL::Utils::Sftp`
+- `Eco::Data::Locations::NodeDiff` and `Eco::Data::Locations::NodeDiff::NodeDiffs`
+ - Aim to identify changes in the locations structure
+
### Changed
- - Some internal tidy up in `Eco::API::UseCases::GraphQL`
+- Some internal tidy up in `Eco::API::UseCases::GraphQL`
+
## [2.5.3] - 2023-07-19
### Added
- - _GraphQL base case_ for **locations structure update**.
- - Refer to `Eco::API::UseCases::GraphQL::Samples::LocationCommands`
- - See also `Eco::API::UseCases::GraphQL`. **Added** `Helpers` and `Samples`
- - `Eco::Data::Locations` helpers
- - **Converters**: it offers a `DSL` (see `Eco::Data::Locations::DSL`) manage as input/output:
- 1. CSV files with locations in two basic formats (list of nodes and hierarchy of locations)
- 2. This comes with integrity checkers to ensure the input data files are correct (warnings)
- 3. It also allows to convert to/from an organization locations structure and csv files.
- - Making generic the helpers of `Eco::API::UseCases::DefaultCases::CsvToTree`
- - The prospect is to move to the new/reviewed helpers at some stage (so remove the old helpers)
- - This comes with a series of **converters** and **parsers** to allow two basic forms of input/output:
- - CSV with list of nodes (`id`, `name`, `parent_id`)
- - CSV of the actual tree (each column is one level of the tree)
- - `Eco::API::Organization::TagTree` - **added/improved methods**
- - **added** shortcuts: `parent_id`, `parent_name`
- - **added** filters: `select`, `reject`
- - **improved** `as_json`:
- 1. new parameter `include_children`
- 2. Hash keys | Header names to `HEADER` column
- - **added** `as_nodes_json` to obtain a plain list (rather than hierarchical `as_json`)
- - `Eco::CSV::Table`
- - **added** `#add_index_column` to numerate the rows in a new column
- - **improved** `#add_column` with new parameter `pos`
- - **added** `#nil_blank_cells` and `#nil_blank_cells!`
- - `Eco::Language::BasicLogger` brief extensible logger.
+- _GraphQL base case_ for **locations structure update**.
+ - Refer to `Eco::API::UseCases::GraphQL::Samples::LocationCommands`
+ - See also `Eco::API::UseCases::GraphQL`. **Added** `Helpers` and `Samples`
+- `Eco::Data::Locations` helpers
+ - **Converters**: it offers a `DSL` (see `Eco::Data::Locations::DSL`) manage as input/output:
+ 1. CSV files with locations in two basic formats (list of nodes and hierarchy of locations)
+ 2. This comes with integrity checkers to ensure the input data files are correct (warnings)
+ 3. It also allows to convert to/from an organization locations structure and csv files.
+ - Making generic the helpers of `Eco::API::UseCases::DefaultCases::CsvToTree`
+ - The prospect is to move to the new/reviewed helpers at some stage (so remove the old helpers)
+ - This comes with a series of **converters** and **parsers** to allow two basic forms of input/output:
+ - CSV with list of nodes (`id`, `name`, `parent_id`)
+ - CSV of the actual tree (each column is one level of the tree)
+- `Eco::API::Organization::TagTree` - **added/improved methods**
+ - **added** shortcuts: `parent_id`, `parent_name`
+ - **added** filters: `select`, `reject`
+ - **improved** `as_json`:
+ 1. new parameter `include_children`
+ 2. Hash keys | Header names to `HEADER` column
+ - **added** `as_nodes_json` to obtain a plain list (rather than hierarchical `as_json`)
+- `Eco::CSV::Table`
+ - **added** `#add_index_column` to numerate the rows in a new column
+ - **improved** `#add_column` with new parameter `pos`
+ - **added** `#nil_blank_cells` and `#nil_blank_cells!`
+- `Eco::Language::BasicLogger` brief extensible logger.
+
### Changed
- - Refactored `Eco::API::Session::Logger` inheriting from `Eco::Language::BasicLogger`
+- Refactored `Eco::API::Session::Logger` inheriting from `Eco::Language::BasicLogger`
+
### Fixed
- - Live tree retrieval. Allow to specify locations structure `id`, `kargs` & `block`.
- - `Eco::API::Session#live_tree` allow `id`, `kargs` & `block`, **fix** pass `include_archived`
- - `Eco::API::Session::Config#live_tree` allow `id`, `kargs` & `block`
- - When `id` is given, it uses `tagtree_config#live_tree_get`
- - **fixed** neither `kargs` nor `include_archived` where defined
- - `Eco::API::Session::Config::Tagtree` methods
- - `#live_trees` allow `kargs`
- - `#live_tree_get` **added**: it does not memoize
- - `#live_tree` allow `id` and `kargs`
- - **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).
- - **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.
+- Live tree retrieval. Allow to specify locations structure `id`, `kargs` & `block`.
+ - `Eco::API::Session#live_tree` allow `id`, `kargs` & `block`, **fix** pass `include_archived`
+ - `Eco::API::Session::Config#live_tree` allow `id`, `kargs` & `block`
+ - When `id` is given, it uses `tagtree_config#live_tree_get`
+ - **fixed** neither `kargs` nor `include_archived` where defined
+ - `Eco::API::Session::Config::Tagtree` methods
+ - `#live_trees` allow `kargs`
+ - `#live_tree_get` **added**: it does not memoize
+ - `#live_tree` allow `id` and `kargs`
+ - **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).
+ - **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.
+
## [2.5.2] - 2023-06-23
### Added
- - `Eco::API::Session::Config::Workflow#exit_handle`
- - Allows to define a callback on `SystemExit` (`exit` call).
+- `Eco::API::Session::Config::Workflow#exit_handle`
+ - Allows to define a callback on `SystemExit` (`exit` call).
+
### Fixed
- - `Eco::API::Session::Config::Workflow` on `SystemExit` preserve original exit `status` value (i.e. `0`, `1`)
- - It was changing an `exit 1` to be an `exit 0`
- - Default Workflow. `exit 0` when no operation specified (rather than `exit 1`).
+- `Eco::API::Session::Config::Workflow` on `SystemExit` preserve original exit `status` value (i.e. `0`, `1`)
+ - It was changing an `exit 1` to be an `exit 0`
+- Default Workflow. `exit 0` when no operation specified (rather than `exit 1`).
+
## [2.5.1] - 2023-06-06
### Added
- - `Eco::API::Common::Session:SFTP#host` method
- - New options to control csv headers check (`Eco::API::Common::People::DefaultParsers::CSVParser`)
- - `Eco::API::Common::Loaders::CaseBase` add to the setter the `@usecase`
- - Implemented via `Eco::API::UseCases::UseCase`
+- `Eco::API::Common::Session:SFTP#host` method
+- New options to control csv headers check (`Eco::API::Common::People::DefaultParsers::CSVParser`)
+- `Eco::API::Common::Loaders::CaseBase` add to the setter the `@usecase`
+ - Implemented via `Eco::API::UseCases::UseCase`
+
### Changed
- - Dry out dependency loading.
- - `ecoportal-api` **gem** remains as eager loading.
- - Patch `Ecoportal::API::V1::Person` with `include`
- - Upgraded `ecoportal-api-graphql` **gem**
- - `Eco::API::Common::People::PersonEntryAttributeMapper`
- - Switched reversed attr defs warning to `info` logging level.
- - `Eco::API::Common::DefaultParsers::SelectParser`
- - When there is dependency with the hash of options, it should return nil when the option is unknown.
+- Dry out dependency loading.
+ - `ecoportal-api` **gem** remains as eager loading.
+- Patch `Ecoportal::API::V1::Person` with `include`
+- Upgraded `ecoportal-api-graphql` **gem**
+- `Eco::API::Common::People::PersonEntryAttributeMapper`
+ - Switched reversed attr defs warning to `info` logging level.
+- `Eco::API::Common::DefaultParsers::SelectParser`
+ - When there is dependency with the hash of options, it should return nil when the option is unknown.
+
### Fixed
- - Tidied up file encoding when getting content.
- - This fixes `Eco::CSV::read`
- - `Eco::API::Common::People::DefaultParsers::CSVParser` made some refactor.
+- Tidied up file encoding when getting content.
+ - This fixes `Eco::CSV::read`
+- `Eco::API::Common::People::DefaultParsers::CSVParser` made some refactor.
+
## [2.4.9] - 2023-04-17
### Added
- - `Eco::API::UseCases#source_object` to retrieve the original use case definition object
- - This allows the `Eco::API::UseCases::UseCase` object to access the object that defined the usecase and initialize `@session`.
- - It now can know what `type` of use case created the `@callback`
- - 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.
- - `Eco::API::Common::Loaders::Base` the above feature allowed to initialize the `@options`, and therefore...
- - `#options` method **added** (based on `@options` instance var)
+- `Eco::API::UseCases#source_object` to retrieve the original use case definition object
+ - This allows the `Eco::API::UseCases::UseCase` object to access the object that defined the usecase and initialize `@session`.
+ - It now can know what `type` of use case created the `@callback`
+ - 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.
+- `Eco::API::Common::Loaders::Base` the above feature allowed to initialize the `@options`, and therefore...
+ - `#options` method **added** (based on `@options` instance var)
+
### Changed
- - `Eco::API::Common::Loaders::Base`
- - `#session` method is based on `@session` instance var, which allows to override without having to redefine `session` (`attr_reader :session` is no longer necessary)
- - Softened max version of **gem** dependencies
- - Upgraded self-managed **gem** dependencies
+- `Eco::API::Common::Loaders::Base`
+ - `#session` method is based on `@session` instance var, which allows to override without having to redefine `session` (`attr_reader :session` is no longer necessary)
+- Softened max version of **gem** dependencies
+- Upgraded self-managed **gem** dependencies
+
### Fixed
- - `Eco::API::Common::ClassAutoLoader::autoload_children`
- - Skip `singleton_classes`
+- `Eco::API::Common::ClassAutoLoader::autoload_children`
+ - Skip `singleton_classes`
+
## [2.4.8] - 2023-04-03
### Added
- - `Eco::API::Organization::TagTree#ancestors` returns the ancestor nodes.
+- `Eco::API::Organization::TagTree#ancestors` returns the ancestor nodes.
+
## [2.4.7] - 2023-04-03
### Added
- - `Eco::Data::Hashes::ArrayDiff#diffs?`
- - `Eco::API::Organization::TagTree` added methods:
- - `#source` => to expose the original doc
- - `#all_nodes` => to implement the block call
+- `Eco::Data::Hashes::ArrayDiff#diffs?`
+- `Eco::API::Organization::TagTree` added methods:
+ - `#source` => to expose the original doc
+ - `#all_nodes` => to implement the block call
+
### Changed
- - Upgraded `ecoportal-api-graphql` **gem**
+- Upgraded `ecoportal-api-graphql` **gem**
+
### Fixed
- - `Eco::API::Session::Config::Api` **new `graphql` api** was missing `host`
- - `Eco::API::UseCases::DefaultCases::CsvToTree::Helper`
- - `#nodes_from_csv` assumed unique top level tag and not present
- - This fix completes this feature (as top level tags were not there)
+- `Eco::API::Session::Config::Api` **new `graphql` api** was missing `host`
+- `Eco::API::UseCases::DefaultCases::CsvToTree::Helper`
+ - `#nodes_from_csv` assumed unique top level tag and not present
+ - This fix completes this feature (as top level tags were not there)
+
## [2.4.6] - 2023-04-02
### Added
- - `Eco::API::Organization::TagTree` added support for `archived_token`
- - Added support for `block` in
- - `Eco::API::Session#live_tree`
- - `Eco::API::Session::Config::Tagtree` in `#live_trees` and `live_tree`
+- `Eco::API::Organization::TagTree` added support for `archived_token`
+- Added support for `block` in
+ - `Eco::API::Session#live_tree`
+ - `Eco::API::Session::Config::Tagtree` in `#live_trees` and `live_tree`
+
### Changed
- - Upgraded `ecoportal-api-graphql` **gem**
+- Upgraded `ecoportal-api-graphql` **gem**
## [2.4.5] - 2023-03-31
### Added
- - `Eco::API::Organization::TagTree` support for `archived` and `weight` properties
- - `Eco::Data::Hashes::ArrayDiff` and `Eco::Data::Hashes::DiffResult`
- - Enable easy comparison of array of hashes
- - Input data can be diverse
+- `Eco::API::Organization::TagTree` support for `archived` and `weight` properties
+- `Eco::Data::Hashes::ArrayDiff` and `Eco::Data::Hashes::DiffResult`
+ - Enable easy comparison of array of hashes
+ - Input data can be diverse
+
### Fixed
- - `Eco::API::UseCases::DefaultCases::CsvToTree`
- - Fixed the missed alignment children that jump levels
- - `Eco::API::UseCases::DefaultCases::CsvToTree::Node`
- - `to_h`: attrs param was being ingnored.
+- `Eco::API::UseCases::DefaultCases::CsvToTree`
+ - Fixed the missed alignment children that jump levels
+- `Eco::API::UseCases::DefaultCases::CsvToTree::Node`
+ - `to_h`: attrs param was being ingnored.
## [2.4.4] - 2023-03-29
### Added
- - `Eco::API:Organization::TagTree`
- - Added **methods** `#each` and `#all_nodes` allow to loop through all nodes
- - Added `parent` to refer to the parent node.
+- `Eco::API:Organization::TagTree`
+ - Added **methods** `#each` and `#all_nodes` allow to loop through all nodes
+ - Added `parent` to refer to the parent node.
+
### Changed
- - `Eco::API:Organization::TagTree` made **Enumerable**
+- `Eco::API:Organization::TagTree` made **Enumerable**
+
### Fixed
- - `Eco:API::Session#live_tree` pass `enviro`
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
- - Fix typo on error message.
+- `Eco:API::Session#live_tree` pass `enviro`
+- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
+ - Fix typo on error message.
+
## [2.4.3] - 2023-03-23
### Fixed
- - `Eco::API::MicroCases#take_email_from_account` it was failing at the very (when restoring the original account)
- - Comes from back-end issue. Adding account with preferences.kiosk_enabled would return:
- - `{"errors"=>["account > preferences > kiosk_enabled is an unknown field"]}`
+- `Eco::API::MicroCases#take_email_from_account` it was failing at the very (when restoring the original account)
+ - Comes from back-end issue. Adding account with preferences.kiosk_enabled would return:
+ - `{"errors"=>["account > preferences > kiosk_enabled is an unknown field"]}`
+
## [2.4.2] - 2023-03-17
### Fixed
- - `Eco::API::Common::People::EntryFactory#entries` _bom_ **encoding** (get back support)
+- `Eco::API::Common::People::EntryFactory#entries` _bom_ **encoding** (get back support)
+
## [2.3.3] - 2023-03-16
### Added
- - Added new option `-input-encoding` to specify the encoding of an input file
+- Added new option `-input-encoding` to specify the encoding of an input file
+
### Changed
- - `ecoportal-api` **gem** update
+- `ecoportal-api` **gem** update
## [2.3.2] - 2023-03-10
### Fixed
- - upgraded core library gems:
- - `ecoportal-api`
+- upgraded core library gems:
+ - `ecoportal-api`
+
## [2.3.1] - 2023-03-09
### Changed
- - upgraded core library gems:
- - `ecoportal-api`
- - `ecoportal-api-v2`
- - `ecoportal-api-graphql`
+- upgraded core library gems:
+ - `ecoportal-api`
+ - `ecoportal-api-v2`
+ - `ecoportal-api-graphql`
+
## [2.2.5] - 2023-03-07
### Fixed
- - Make it, so it requires to have a locations structure with nodes (raise exception otherwise)
+- Make it, so it requires to have a locations structure with nodes (raise exception otherwise)
+
## [2.2.4] - 2023-03-07
### Fixed
- - Logger object when logging from config
+- Logger object when logging from config
+
## [2.2.3] - 2023-03-07
### Added
- - Logger info for live tree selected.
+- Logger info for live tree selected.
+
### Changed
- - `Eco::API::Common::People::DefaultParsers::PolicyGroupsParser`
- - Should warn of unknown policy groups
+- `Eco::API::Common::People::DefaultParsers::PolicyGroupsParser`
+ - Should warn of unknown policy groups
+
### Fixed
- - `Eco::API:Organization::TagTree` fix `defaults_tag` scoping
+- `Eco::API:Organization::TagTree` fix `defaults_tag` scoping
+
## [2.2.2] - 2023-02-27
### Fixed
- - Typo in GraphQL client (`locationsStructures` should read `locationStructures`)
- - Multiple typos in new code
+- Typo in GraphQL client (`locationsStructures` should read `locationStructures`)
+- Multiple typos in new code
+
## [2.2.1] - 2023-02-24
### Added
- - `Ecoportal::API::V1::Person#contractor_organization_id`
- - **Support** for **Reporting Structures** (breaking change)
- - `Eco::API::UseCases::DefaultCases::CsvToTree` use case to generate tree json out of a csv
- - The output file can be fed to `Eco::API::Organization::TagTree`
+- `Ecoportal::API::V1::Person#contractor_organization_id`
+- **Support** for **Reporting Structures** (breaking change)
+- `Eco::API::UseCases::DefaultCases::CsvToTree` use case to generate tree json out of a csv
+ - The output file can be fed to `Eco::API::Organization::TagTree`
+
### Changed
- - **Patch** `Ecoportal::API::V1::Person::VALID_TAG_REGEX` it now allows for dot `.`
- - update gem dependencies
+- **Patch** `Ecoportal::API::V1::Person::VALID_TAG_REGEX` it now allows for dot `.`
+- update gem dependencies
+
## [2.1.12] - 2022-11-30
### Fixed
- - `Eco::API::Session::Batch::Errors#str` remove double up on error message
- - wrong require
+- `Eco::API::Session::Batch::Errors#str` remove double up on error message
+- wrong require
+
## [2.1.11] - 2022-11-30
### Changed
- - Bring the `-set-supervisor` native case up to date
- - `Eco::API::Session::Batch::Errors#errors`
- - better error catching and description
+- Bring the `-set-supervisor` native case up to date
+- `Eco::API::Session::Batch::Errors#errors`
+ - better error catching and description
+
## [2.1.10] - 2022-11-30
### Fixed
- - `Eco::API::Session::Batch::Errors#errors`
- - include errors with no `error` property in body (i.e. `!response.success?`)
+- `Eco::API::Session::Batch::Errors#errors`
+ - include errors with no `error` property in body (i.e. `!response.success?`)
+
## [2.1.9] - 2022-11-29
### Changed
- - upgrade `ecoportal-api-v2` **gem** dependency
- - upgrade `ecoportal-api-graphql` **gem** dependency
+- upgrade `ecoportal-api-v2` **gem** dependency
+- upgrade `ecoportal-api-graphql` **gem** dependency
+
### Fixed
- - `Eco::API::Session::Batch::Job`
- - Ability to skip prefilter of entries with no `id` on `:update`
- - Enhanced error tracking (bug resilience)
+- `Eco::API::Session::Batch::Job`
+ - Ability to skip prefilter of entries with no `id` on `:update`
+ - Enhanced error tracking (bug resilience)
+
## [2.1.8] - 2022-11-18
### Added
- - `Eco::API::UseCases::OozeSamples::RegisterMigrationCase`
- - 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)
- - **enhanced** `Eco::API::UseCases::OozeSamples::OozeBaseCase#with_fields`
- - It allows to optionally pass as first parameter a section or a stage (default: ooze)
+- `Eco::API::UseCases::OozeSamples::RegisterMigrationCase`
+ - 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)
+- **enhanced** `Eco::API::UseCases::OozeSamples::OozeBaseCase#with_fields`
+ - It allows to optionally pass as first parameter a section or a stage (default: ooze)
+
### Changed
- - upgraded gem dependency `ecoportal-api-v2`
+- upgraded gem dependency `ecoportal-api-v2`
+
## [2.1.7] - 2022-11-17
### Added
- - `Eco::API::UseCases::OozeSamples::RegisterMigrationCase` method `excluded_field_hooks`
- - This enables the ability to prevent fields from being paired/copied/written on
+- `Eco::API::UseCases::OozeSamples::RegisterMigrationCase` method `excluded_field_hooks`
+ - This enables the ability to prevent fields from being paired/copied/written on
+
### Changed
- - **refactored** `#with_src_dst_field_pair` helper
- - from `Eco::API::UseCases::OozeSamples::HelpersMigration::Copying`
+- **refactored** `#with_src_dst_field_pair` helper
+ - from `Eco::API::UseCases::OozeSamples::HelpersMigration::Copying`
+
## [2.1.6] - 2022-11-17
### Fixed
- - `Eco::API::UseCases::OozeSamples::Helpers::Shortcuts#to_i` (missing param on method)
- - `Eco::API::UseCases::OozeSamples::HelpersMigration::TypedFieldsPairing#multi_delete` typo
+- `Eco::API::UseCases::OozeSamples::Helpers::Shortcuts#to_i` (missing param on method)
+- `Eco::API::UseCases::OozeSamples::HelpersMigration::TypedFieldsPairing#multi_delete` typo
+
## [2.1.5] - 2022-11-17
### Added
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase` added creation count
- - Requires use of `#create_ooze(draft, template_id)`
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase` added method
- - `with_rescue` that prompts user to continue
- - this is for usage in child classes
- - new use case and helpers thereof `Eco::API::UseCases::OozeSamples::RegisterMigrationCase`
+- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase` added creation count
+ - Requires use of `#create_ooze(draft, template_id)`
+- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase` added method
+ - `with_rescue` that prompts user to continue
+ - this is for usage in child classes
+- new use case and helpers thereof `Eco::API::UseCases::OozeSamples::RegisterMigrationCase`
+
### Changed
- - upgraded `ecoportal-api-v2` **gem**
- - **refactored** `Eco::API::UseCases::OozeSamples::Helpers::Shortcuts#same_string?`
+- upgraded `ecoportal-api-v2` **gem**
+- **refactored** `Eco::API::UseCases::OozeSamples::Helpers::Shortcuts#same_string?`
+
## [2.1.4] - 2022-10-20
### Added
- - `Eco::API::Common::Session::Mailer#mail` added parameters `cc` and `bcc`
+- `Eco::API::Common::Session::Mailer#mail` added parameters `cc` and `bcc`
+
## [2.1.3] - 2022-10-11
### Added
- - `Eco::API::UseCases::OozeSamples::OozeBaseCase`
- - `with_fields`, `with_sections` and `add_field` accept an `entry` parameter
- - also did some internal refactor
+- `Eco::API::UseCases::OozeSamples::OozeBaseCase`
+ - `with_fields`, `with_sections` and `add_field` accept an `entry` parameter
+ - also did some internal refactor
+
### Changed
- - Upgraded `ecoportal-api-v2` **gem**
+- Upgraded `ecoportal-api-v2` **gem**
+
### Fixed
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
- - account for stages with updates within same entry
+- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
+ - account for stages with updates within same entry
+
## [2.1.2] - 2022-09-29
### Added
- - `Ecoportal::API::Session::Config#live_tree` to retrieve the tagtree of the back-end
- - Requires `graphql` connection parameters
- - `Ecoportal::API::Session#live_tree` see above
+- `Ecoportal::API::Session::Config#live_tree` to retrieve the tagtree of the back-end
+ - Requires `graphql` connection parameters
+- `Ecoportal::API::Session#live_tree` see above
+
### Changed
- - `Ecoportal::API::Session::Config#tagtree` to use `#live_tree` if there isn't a `tagtree.json` file
- - upgraded **dependency** to `ecoportal-api-graphql` **gem**
- - upgraded **dependency** to `ecoportal-api-v2` **gem**
+- `Ecoportal::API::Session::Config#tagtree` to use `#live_tree` if there isn't a `tagtree.json` file
+- upgraded **dependency** to `ecoportal-api-graphql` **gem**
+- upgraded **dependency** to `ecoportal-api-v2` **gem**
+
### Fixed
- - `Ecoportal::API::Session::Config::API#version_available?` **typo**
+- `Ecoportal::API::Session::Config::API#version_available?` **typo**
+
## [2.1.1] - 2022-09-26
### Added
- - `Eco::API::Session::Config::Api#version_available?` to know if a version is available for use
- - `Eco::API::Session::Config::Apis`, added `#default_pass` and `#default_email` to use the `GraphQL` api.
+- `Eco::API::Session::Config::Api#version_available?` to know if a version is available for use
+- `Eco::API::Session::Config::Apis`, added `#default_pass` and `#default_email` to use the `GraphQL` api.
+
### Changed
- - upgraded **dependency** to `ecoportal-api-graphql` **gem**
- - upgraded **dependency** to `ecoportal-api-v2` **gem**
+- upgraded **dependency** to `ecoportal-api-graphql` **gem**
+- upgraded **dependency** to `ecoportal-api-v2` **gem**
+
## [2.0.68] - 2022-09-19
### Added
- - `Eco::API::UseCases::OozeSamples::OozeBaseCase`: **added** a couple of functions to support **page creation**: `#new_page` and `#create_page`
+- `Eco::API::UseCases::OozeSamples::OozeBaseCase`: **added** a couple of functions to support **page creation**: `#new_page` and `#create_page`
+
### Changed
- - upgraded **dependency** to `ecoportal-api-graphql` **gem**
- - upgraded **dependency** to `ecoportal-api-v2` **gem**
+- upgraded **dependency** to `ecoportal-api-graphql` **gem**
+- upgraded **dependency** to `ecoportal-api-v2` **gem**
+
### Fixed
- - `Eco::API::Session::Config::Api`, the `org_id` is **not** a required parameter for `APIv2`
+- `Eco::API::Session::Config::Api`, the `org_id` is **not** a required parameter for `APIv2`
+
## [2.0.67] - 2022-09-15
### Added
- - **dependency** to `ecoportal-api-graphql` **gem**
- - Added integration for `GraphQL`
- - `session.api(version: :graphql)`
- - New base case `Eco::API::UseCases::GraphQL::Base` to create `GraphQL` use cases
+- **dependency** to `ecoportal-api-graphql` **gem**
+- Added integration for `GraphQL`
+ - `session.api(version: :graphql)`
+- New base case `Eco::API::UseCases::GraphQL::Base` to create `GraphQL` use cases
+
### Changed
- - `Eco::CSV#read` and `Eco::CSV#parse` delegating `nil` row removal to sublcass `Eco::CSV::Table`
- - **upgraded** dependency on `ecoportal-api-v2`
+- `Eco::CSV#read` and `Eco::CSV#parse` delegating `nil` row removal to sublcass `Eco::CSV::Table`
+- **upgraded** dependency on `ecoportal-api-v2`
+
### Fixed
- - `Eco::API::Session::Config::SFTP#remote_folder` to have path separator always as `/`
- - `Eco::CSV::Table`
- - to delete rows with all `nil` values
- - to keep `header` when file comes only with `header` row (with `0` count)
+- `Eco::API::Session::Config::SFTP#remote_folder` to have path separator always as `/`
+- `Eco::CSV::Table`
+ - to delete rows with all `nil` values
+ - to keep `header` when file comes only with `header` row (with `0` count)
+
## [2.0.66] - 2022-08-11
### Fixed
- - `Eco::API::UseCases::DefaultCases::Samples::Sftp` manage exception when trying to access remote folder
+- `Eco::API::UseCases::DefaultCases::Samples::Sftp` manage exception when trying to access remote folder
+
## [2.0.65] - 2022-08-11
### Fixed
- - Typo of a fix
+- Typo of a fix
+
## [2.0.63] - 2022-08-11
### Changed
- - `Eco::API::Session::Config::SFTP#remote_folder` to use native path builder
+- `Eco::API::Session::Config::SFTP#remote_folder` to use native path builder
+
## [2.0.62] - 2022-07-15
### Added
- - SFTP **password** option
- - `Eco::API::Common::Session::Sftp` fetches from config
- - `Eco::API::Session::Config::Sftp#password`
+- SFTP **password** option
+ - `Eco::API::Common::Session::Sftp` fetches from config
+ - `Eco::API::Session::Config::Sftp#password`
+
### Fixed
- - `Eco::API::UseCases::DefaultCases::CreateCase` had a typo
+- `Eco::API::UseCases::DefaultCases::CreateCase` had a typo
+
## [2.0.61] - 2022-07-11
### Added
- - patch for `Ecoportal::API::Common::Client#host` exposed `host` property
- - `skip-header-checks` option
- - It prevents checks done in the `Eco::API::Common::People::DefaultParsers::CSVParser`
- - **Export Helpers** to be able to automate exports via `APIv2`
- - `Eco::API::UseCases::OozeSamples::Helpers::ExportableRegister`
- - `Eco::API::UseCases::OozeSamples::Helpers::ExportableOoze`
- - `Eco::API::UseCases::OozeCases::ExportRegisterCase` to export registers
- - First ooze native use case (besides the samples)
+- patch for `Ecoportal::API::Common::Client#host` exposed `host` property
+- `skip-header-checks` option
+ - It prevents checks done in the `Eco::API::Common::People::DefaultParsers::CSVParser`
+- **Export Helpers** to be able to automate exports via `APIv2`
+ - `Eco::API::UseCases::OozeSamples::Helpers::ExportableRegister`
+ - `Eco::API::UseCases::OozeSamples::Helpers::ExportableOoze`
+- `Eco::API::UseCases::OozeCases::ExportRegisterCase` to export registers
+ - First ooze native use case (besides the samples)
+
### Changed
- - upgraded `ecoportal-api-v2` to version `0.8.30`
+- upgraded `ecoportal-api-v2` to version `0.8.30`
+
### Fixed
- - `-entries-to-csv` case; option `-out` was not being used
- - `Eco::API::Common::People::Entries#export` made it so it creates one column per key
- - It was wrongly merging the entries assuming all of them had the same keys
- - 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
- - `Eco::API::UseCases::OozeSamples::RegisterExportCase`
- - On prompt to launch, it answers `Yes`
- - It correctly captures the `state` based on the stages `state`
- - It was not building the model
- - Optimized
- - It returns a `PageStage` (rather than `Page`), to ensure all supported properties are accessible (i.e. `uid`)
+- `-entries-to-csv` case; option `-out` was not being used
+- `Eco::API::Common::People::Entries#export` made it so it creates one column per key
+ - It was wrongly merging the entries assuming all of them had the same keys
+ - 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
+- `Eco::API::UseCases::OozeSamples::RegisterExportCase`
+ - On prompt to launch, it answers `Yes`
+ - It correctly captures the `state` based on the stages `state`
+ - It was not building the model
+ - Optimized
+ - It returns a `PageStage` (rather than `Page`), to ensure all supported properties are accessible (i.e. `uid`)
+
## [2.0.60] - 2022-07-01
### Fixed
- - `Ecoportal::API::V1::PersonDetails.key?` patched
+- `Ecoportal::API::V1::PersonDetails.key?` patched
+
## [2.0.59] - 2022-06-07
### Added
- - `Eco::API::Organization::TagTree#leafs` new method to spot tags with no children.
+- `Eco::API::Organization::TagTree#leafs` new method to spot tags with no children.
+
### Changed
- - `Eco::API::MicroCases#core_excluded`
- - when person is `new?`, you should still be able to exclude `filter_tags`
+- `Eco::API::MicroCases#core_excluded`
+ - when person is `new?`, you should still be able to exclude `filter_tags`
+
### Fixed
- - `Eco::API::Policies::DefaultPolicies::UserAccess`
- - `-exclude-account` should leave it untouched
+- `Eco::API::Policies::DefaultPolicies::UserAccess`
+ - `-exclude-account` should leave it untouched
+
## [2.0.58] - 2022-05-31
### Added
- - **Usecase**`Eco::API::UseCases::DefaultCases::ClearAbilitiesTransCase`
- - invokable with `clear-abilities`
- - `Eco::API::Session::Config::People` added
- - `default_login_method` helpers
- - `Eco::API::Session::Config#default_login_method=` added
- - `Eco::API::Common::Loaders::Base#abort` method to log an error and raise an exception
- - **patched** `Ecoportal::API::Internal::Person`
- - Added a couple of handy helpers: `#replace_doc` and `#replace_original_doc`
+- **Usecase**`Eco::API::UseCases::DefaultCases::ClearAbilitiesTransCase`
+ - invokable with `clear-abilities`
+- `Eco::API::Session::Config::People` added
+ - `default_login_method` helpers
+- `Eco::API::Session::Config#default_login_method=` added
+- `Eco::API::Common::Loaders::Base#abort` method to log an error and raise an exception
+- **patched** `Ecoportal::API::Internal::Person`
+ - Added a couple of handy helpers: `#replace_doc` and `#replace_original_doc`
+
### Changed
- - `Eco::API::Common::Session::SFTP#move` new parameter `override:` (default: `true`)
- - If there was an error, it would delete the destination remote file and retry to move the file
- - upgraded `ecoportal-api-v2` gem to `0.8.28`
- - `Eco::API::Organization::LoginProviders#login_provider`
- - Added support to fetch based on type (i.e. password, sso)
- - `Eco::API::Policies::DefaultPolicies::UserAccess`
- - Added support for `config.default_login_method`
+- `Eco::API::Common::Session::SFTP#move` new parameter `override:` (default: `true`)
+ - If there was an error, it would delete the destination remote file and retry to move the file
+ - upgraded `ecoportal-api-v2` gem to `0.8.28`
+- `Eco::API::Organization::LoginProviders#login_provider`
+ - Added support to fetch based on type (i.e. password, sso)
+- `Eco::API::Policies::DefaultPolicies::UserAccess`
+ - Added support for `config.default_login_method`
+
### Fixed
- - `Eco::API::Common::People::EntryFactory`
- - Max allowed enconding errors was not working (it was just fixing all).
+- `Eco::API::Common::People::EntryFactory`
+ - Max allowed enconding errors was not working (it was just fixing all).
+
## [2.0.57] - 2022-04-29
### Changed
- - `Eco::API::UseCases::DefaultCases::HrisCase`
- - Made it so the `leavers` batch runs first
- - This aims to prevent some errors such as `cyclic supervisor` or `email already taken`
+- `Eco::API::UseCases::DefaultCases::HrisCase`
+ - Made it so the `leavers` batch runs first
+ - This aims to prevent some errors such as `cyclic supervisor` or `email already taken`
+
## [2.0.56] - 2022-04-25
### Added
- - `Eco::API::UseCases::OozeSamples::OozeBaseCase#add_field_by_doc`
- - Same as `#add_field` but using an existing _**doc**_ as a model
+- `Eco::API::UseCases::OozeSamples::OozeBaseCase#add_field_by_doc`
+ - Same as `#add_field` but using an existing _**doc**_ as a model
+
### Changed
- - `ecoportal-api-v2` dependency upgrade
- - `Eco::API::Common::Session::FileManager#file_content`
- - added parameter `mode:` to options can be used as well
- - `Eco::API::UseCases::OozeSamples::Helpers::Shortcuts#same_string?`
- - Added parameter `mild:` to compare the strings with only alphabetic characters
- - `Eco::API::UseCases::OozeSamples::OozeRunBaseCase`
- - `#main` and `#process_ooze` methods were not obvious to use
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase` slight change on the **`run` summary message**
+- `ecoportal-api-v2` dependency upgrade
+- `Eco::API::Common::Session::FileManager#file_content`
+ - added parameter `mode:` to options can be used as well
+- `Eco::API::UseCases::OozeSamples::Helpers::Shortcuts#same_string?`
+ - Added parameter `mild:` to compare the strings with only alphabetic characters
+- `Eco::API::UseCases::OozeSamples::OozeRunBaseCase`
+ - `#main` and `#process_ooze` methods were not obvious to use
+- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase` slight change on the **`run` summary message**
+
### Fixed
- - `Eco::API::UseCases::OozeSamples::OozeBaseCase#update_ooze`
- - Added call to `validate` also when we are on `dry-run` **mode**
+- `Eco::API::UseCases::OozeSamples::OozeBaseCase#update_ooze`
+ - Added call to `validate` also when we are on `dry-run` **mode**
+
## [2.0.55] - 2022-04-04
### Fixed
- - `Eco::API::UseCases::DefaultCases::Samples::Sftp` should move the basename to Windows compatible chars.
+- `Eco::API::UseCases::DefaultCases::Samples::Sftp` should move the basename to Windows compatible chars.
+
## [2.0.54] - 2022-04-04
### Added
- - `Eco::API::UseCases::DefaultCases::Samples::Sftp` should tell where the files went in the local.
+- `Eco::API::UseCases::DefaultCases::Samples::Sftp` should tell where the files went in the local.
+
## [2.0.53] - 2022-04-04
### Added
- - `Eco::API::MicroCases#set_supervisor` prevent to set someone as supervisor of themselves.
- - `Eco::API::UseCases::DefaultCases::Samples::Sftp` integration to modify the `source_folder`
+- `Eco::API::MicroCases#set_supervisor` prevent to set someone as supervisor of themselves.
+- `Eco::API::UseCases::DefaultCases::Samples::Sftp` integration to modify the `source_folder`
+
### Changed
- - upgrade `ecoportal-api` and `ecoportal-api-v2` dependencies
+- upgrade `ecoportal-api` and `ecoportal-api-v2` dependencies
+
## [2.0.52] - 2022-03-04
### Added
- - `Eco::API::UseCases::DefaultCases::CleanUnknownTags` include `default_tag` refresh
+- `Eco::API::UseCases::DefaultCases::CleanUnknownTags` include `default_tag` refresh
+
### Fixed
- - `Eco::Data::Files::Directory#dir_files` to be returned in alphabetic order
+- `Eco::Data::Files::Directory#dir_files` to be returned in alphabetic order
+
## [2.0.51] - 2022-02-27
### Added
- - `Eco::API::MicroCases#person_update!` launches an update against the Server for one person
- - `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
+- `Eco::API::MicroCases#person_update!` launches an update against the Server for one person
+- `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
+
## [2.0.50] - 2022-02-23
### Added
- - Ability to configure delay between jobs and job groups
- - `Eco::API::Session::Batch::Jobs`, `#delay_between_jobs`
- - `Eco::API::Session::Batch::JobsGroups`, `#delay_between_groups`
- - `Eco::API::Session::Config`, added methods `#delay_between_jobs` and `#delay_between_job_groups`
- - New use case `Eco::API::UseCases::DefaultCases::TagPaths` to create a `csv` with all `tag` paths
- - Its purpose is to ease the build of tag remaps
- - Ideally, after remapping the tags of an org, you would want to fix the tag paths based on the current tagtree
+- Ability to configure delay between jobs and job groups
+ - `Eco::API::Session::Batch::Jobs`, `#delay_between_jobs`
+ - `Eco::API::Session::Batch::JobsGroups`, `#delay_between_groups`
+ - `Eco::API::Session::Config`, added methods `#delay_between_jobs` and `#delay_between_job_groups`
+- New use case `Eco::API::UseCases::DefaultCases::TagPaths` to create a `csv` with all `tag` paths
+ - Its purpose is to ease the build of tag remaps
+ - Ideally, after remapping the tags of an org, you would want to fix the tag paths based on the current tagtree
+
### Changed
- - `workflow`, when no operation specified it logs as `info`, rather than `warn`
+- `workflow`, when no operation specified it logs as `info`, rather than `warn`
+
## [2.0.49] - 2022-02-14
### Added
- - `Eco::API::Session::Batch::RequestStats#message` now it shows which details have changed
- - `Eco::API::UseCases::DefaultCases::ReinviteTransCase` the option `-force` will also send an invite to users that have accepted the invitation
+- `Eco::API::Session::Batch::RequestStats#message` now it shows which details have changed
+- `Eco::API::UseCases::DefaultCases::ReinviteTransCase` the option `-force` will also send an invite to users that have accepted the invitation
+
## [2.0.48] - 2022-02-04
### Changed
- - upgraded `ecoportal-api-v2` dependency
+- upgraded `ecoportal-api-v2` dependency
+
### Fixed
- - `Eco::API::Common::People::EntryFactory#get_file_content`
- - Call to `String#scrub` to prevent _invalid byte sequence_ error by replacing those characters by their coding identifier
- - This has been implemented with a max tolerance of 5 byte sequence errors
- - Errors are logged (although could not get to identify the line :/)
+- `Eco::API::Common::People::EntryFactory#get_file_content`
+ - Call to `String#scrub` to prevent _invalid byte sequence_ error by replacing those characters by their coding identifier
+ - This has been implemented with a max tolerance of 5 byte sequence errors
+ - Errors are logged (although could not get to identify the line :/)
+
## [2.0.47] - 2022-02-03
### Added
- - `Eco::API::UseCases::DefaultCases::CleanUnknownTags`
- - It is possible to extend or override `register_tags`
- - New command option `-include-register-tags` (will not ignore register tags; they will be removed too)
- - `Eco::API::UseCases::DefaultCases::Samples::Sftp`
- - Default sample case to list, get and archive SFTP remote files
+
+- `Eco::API::UseCases::DefaultCases::CleanUnknownTags`
+ - It is possible to extend or override `register_tags`
+ - New command option `-include-register-tags` (will not ignore register tags; they will be removed too)
+- `Eco::API::UseCases::DefaultCases::Samples::Sftp`
+ - Default sample case to list, get and archive SFTP remote files
+
### Changed
- - upgraded `ecoportal-api-v2` dependency
+- upgraded `ecoportal-api-v2` dependency
+
### Fixed
- - `Eco::API::Common::Session::S3Uploader#upload_file`: check if file exists before opening.
+- `Eco::API::Common::Session::S3Uploader#upload_file`: check if file exists before opening.
+
## [2.0.46] - 2021-12-24
### Added
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
- - added counter of retrieved entries (to be able to compare with matched initially scoped results)
- - added also counter of failed to retrieve oozes
- - added also counter of double ups in search pagination
- - counter for updated pages and pages that failed update
- - `Eco::API::Session#enviro_name`: to identify in which environment we are running
+- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
+ - added counter of retrieved entries (to be able to compare with matched initially scoped results)
+ - added also counter of failed to retrieve oozes
+ - added also counter of double ups in search pagination
+ - counter for updated pages and pages that failed update
+- `Eco::API::Session#enviro_name`: to identify in which environment we are running
+
### Changed
- - upgraded `ecoportal-api-v2` dependency
- - `Eco::API::UseCases::OozeSamples::OozeBaseCase#update_ooze`
- - To return `false` if there was request made to the server
- - To return `Reponse` if there was request made to the server
+- upgraded `ecoportal-api-v2` dependency
+- `Eco::API::UseCases::OozeSamples::OozeBaseCase#update_ooze`
+ - To return `false` if there was request made to the server
+ - To return `Reponse` if there was request made to the server
+
### Fixed
- - Changed the `workflow` in
- - `on(:end)` to do not recache people if there were no `:sync` or `:transform` cases
- - `Eco::API::UseCases::OozeSamples::OozeRunBaseCase#update_ooze`
- - It's parent had parameter (it as a child should so)
- - `Eco::API::UseCases::OozeSamples::OozeBaseCase#process_ooze`
- - It was not retrieving the `ooze` unless explicitly passed as parameter
- - This did not play well with child implementations that expect it to retrieve it based on `ooze_id` cli argument
+- Changed the `workflow` in
+ - `on(:end)` to do not recache people if there were no `:sync` or `:transform` cases
+- `Eco::API::UseCases::OozeSamples::OozeRunBaseCase#update_ooze`
+ - It's parent had parameter (it as a child should so)
+- `Eco::API::UseCases::OozeSamples::OozeBaseCase#process_ooze`
+ - It was not retrieving the `ooze` unless explicitly passed as parameter
+ - This did not play well with child implementations that expect it to retrieve it based on `ooze_id` cli argument
+
## [2.0.45] - 2021-12-15
### Added
- - `Eco::API::UseCases::OozeSamples::RegisterExportCase`
+- `Eco::API::UseCases::OozeSamples::RegisterExportCase`
+
### Changed
- - Upgrade `ecoportal-api` dependency
- - Upgrade `ecoportal-api-v2` dependency
+- Upgrade `ecoportal-api` dependency
+- Upgrade `ecoportal-api-v2` dependency
+
## [2.0.44] - 2021-11-25
### Changed
- - Upgrade `ecoportal-api` dependency
+- Upgrade `ecoportal-api` dependency
+
## [2.0.43] - 2021-11-25
### Added
- - `Eco::API::Session::Batch::Job` added better **logging**
+- `Eco::API::Session::Batch::Job` added better **logging**
+
### Changed
- - `Eco::API::Session::Batch` added **resilience** and **recovery** to connection errors
- - `Eco::API::Policies::DefaultPolicies::UserAccess` changed logging from `warn` to `info`.
+- `Eco::API::Session::Batch` added **resilience** and **recovery** to connection errors
+- `Eco::API::Policies::DefaultPolicies::UserAccess` changed logging from `warn` to `info`.
+
## [2.0.42] - 2021-10-30
### Added
- - `eco/api/organization/presets_values.json` added abilities:
- - `visitor_management`
- - `broadcast_notifications`
- - `cross_register_reporting`
- - Due to dev pipeline, the `ecoportal-api` version `0.8.4` hasn't been released
- - This part of the current `eco-helpers` version depends on that gem version (to be upgraded later)
- - Changed the `workflow` in
- - `before(:post_launch, :usecases)` => post launch cases are not prevented for **partial** updates
- - rectified message
- - `run(:post_launch, :usecases)` => missing **people** error will log in `debug` level
- - it won't break the script anymore (just prevent a post use case to be run)
- - New use case `Eco::API::UseCases::DefaultCases::EntriesToCsv`: to export input entries as `csv`
- - invokable via `-entries-to-csv`
- - More errors:
- - `Eco::API::Error::ExternalIdTaken`
- - `Eco::API::Error::InternalServerError`
- - **Added** option `processed-people-to-csv file.csv` to export a `csv` with the results of processing people
- - This option allows to preview the final data when launching a `dry-run` (`-simulate`)
- - **Added** ooze case sample `Eco::API::UseCases::OozeSamples::TargetOozesUpdateCase`
- - Allows to retrieve the target entries based on a `csv`
+- `eco/api/organization/presets_values.json` added abilities:
+ - `visitor_management`
+ - `broadcast_notifications`
+ - `cross_register_reporting`
+ - Due to dev pipeline, the `ecoportal-api` version `0.8.4` hasn't been released
+ - This part of the current `eco-helpers` version depends on that gem version (to be upgraded later)
+- Changed the `workflow` in
+ - `before(:post_launch, :usecases)` => post launch cases are not prevented for **partial** updates
+ - rectified message
+ - `run(:post_launch, :usecases)` => missing **people** error will log in `debug` level
+ - it won't break the script anymore (just prevent a post use case to be run)
+- New use case `Eco::API::UseCases::DefaultCases::EntriesToCsv`: to export input entries as `csv`
+ - invokable via `-entries-to-csv`
+- More errors:
+ - `Eco::API::Error::ExternalIdTaken`
+ - `Eco::API::Error::InternalServerError`
+- **Added** option `processed-people-to-csv file.csv` to export a `csv` with the results of processing people
+ - This option allows to preview the final data when launching a `dry-run` (`-simulate`)
+- **Added** ooze case sample `Eco::API::UseCases::OozeSamples::TargetOozesUpdateCase`
+ - Allows to retrieve the target entries based on a `csv`
+
### Changed
- - Moved methods of `#person_ref`, `#get_attr` and `#get_row` as **class methods** of `Eco::API::Session::Batch::Feedback`
- - `Eco::API::Session::Errors` methods above to use them via `Feedback` class
- - `Eco::API::Session::Errors::ErrorCache`: **added** new property `response`
- - `#by_type` added parameter `only_entries` to specify the output type
- - `#errors` capture the `response` in the generated `ErrorCache` object
+- Moved methods of `#person_ref`, `#get_attr` and `#get_row` as **class methods** of `Eco::API::Session::Batch::Feedback`
+ - `Eco::API::Session::Errors` methods above to use them via `Feedback` class
+- `Eco::API::Session::Errors::ErrorCache`: **added** new property `response`
+ - `#by_type` added parameter `only_entries` to specify the output type
+ - `#errors` capture the `response` in the generated `ErrorCache` object
+
### Fixed
- - `Eco::API::Session::Config::Workflow#run` to validate **callback** output class
- - It should be a `Eco::API::UseCases::BaseIO`
- - Prevent **uncreated people** to be present in queues or people refresh (if the server side worked perfectly, this contingency shouldn't be necessary):
- - `Eco::API::Session::Batch::Job#processed_queue`
- - 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)
- - This prevents errors when trying to update/delete a person that most probably does not exist on the server.
- - `Eco::API::MicroCases#people_refresh`
- - Remove from people run-time object those that are **new** that are `dirty` (with pending changes)
+- `Eco::API::Session::Config::Workflow#run` to validate **callback** output class
+ - It should be a `Eco::API::UseCases::BaseIO`
+- Prevent **uncreated people** to be present in queues or people refresh (if the server side worked perfectly, this contingency shouldn't be necessary):
+ - `Eco::API::Session::Batch::Job#processed_queue`
+ - 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)
+ - This prevents errors when trying to update/delete a person that most probably does not exist on the server.
+ - `Eco::API::MicroCases#people_refresh`
+ - Remove from people run-time object those that are **new** that are `dirty` (with pending changes)
+
## [2.0.41] - 2021-10-06
### Fixed
- - `Eco::API::Session::Batch::Job` `backup_update`
- - Saved `requests` filename was overlapping due to only batch job type being used
- - Now it uses the name of the batch job as well
+- `Eco::API::Session::Batch::Job` `backup_update`
+ - Saved `requests` filename was overlapping due to only batch job type being used
+ - Now it uses the name of the batch job as well
+
## [2.0.40] - 2021-09-29
### Added
- - Unique access point for `validation` via core case `Eco::API::UseCases::OozeSamples::OozeBaseCase#update_ooze`
+- Unique access point for `validation` via core case `Eco::API::UseCases::OozeSamples::OozeBaseCase#update_ooze`
+
## [2.0.39] - 2021-09-28
### Changed
- - `Eco::API::UseCases::OozeSamples::OozeBaseCase`
- - Moved helpers from `Eco::API::UseCases::OozeSamples::OozeUpdateCase`
+- `Eco::API::UseCases::OozeSamples::OozeBaseCase`
+ - Moved helpers from `Eco::API::UseCases::OozeSamples::OozeUpdateCase`
+
### Fixed
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
- - fix launch condition to be `Y`
- - fix `search` method call
- - Changed the `workflow` to prevent re-cache of people when `people` was not used
+- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
+ - fix launch condition to be `Y`
+ - fix `search` method call
+- Changed the `workflow` to prevent re-cache of people when `people` was not used
+
## [2.0.38] - 2021-09-07
### Added
- - `Eco::CSV::Table` some more helpers to manage input `csv`s
- - `#transform_headers` that allows to pass a block to decide the new name
- - `#merge_same_header_names` that allows to deal with value of columns with same header name
- - `#duplicated_header_names` that identifies repeated header names
+- `Eco::CSV::Table` some more helpers to manage input `csv`s
+ - `#transform_headers` that allows to pass a block to decide the new name
+ - `#merge_same_header_names` that allows to deal with value of columns with same header name
+ - `#duplicated_header_names` that identifies repeated header names
+
### Changed
- - Changed the `workflow` to prevent re-cache of people when `people` was not used
+- Changed the `workflow` to prevent re-cache of people when `people` was not used
+
## [2.0.37] - 2021-09-03
### Added
+
### Changed
### Fixed
- - `Eco::API::UseCases::OozeSamples::OozeBaseCase`
- - `#update_ooze` only count dry run for changed pages (to have better feedack)
- - stop downloading the people manager
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
- - prevent queuing non page objects
+- `Eco::API::UseCases::OozeSamples::OozeBaseCase`
+ - `#update_ooze` only count dry run for changed pages (to have better feedack)
+ - stop downloading the people manager
+- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
+ - prevent queuing non page objects
+
## [2.0.36] - 2021-08-31
### Fixed
- - `Eco::API::UseCases::OozeSamples::OozeBaseCase`
- - `#update_ooze` only count dry run for changed pages (to have better feedack)
+- `Eco::API::UseCases::OozeSamples::OozeBaseCase`
+ - `#update_ooze` only count dry run for changed pages (to have better feedack)
+
## [2.0.35] - 2021-08-30
### Added
- - `Eco::API::UseCases::OozeSamples::OozeBaseCase`
- - `#new_target` optional warning when switching `target`
- - `block` that is called when switching target and there were unsaved changes
- - `#dirty?` helper method to check if there are changes
- - `#before_loading_new_target` hook to allow child classes to anticipate when the `target` is going to change
+- `Eco::API::UseCases::OozeSamples::OozeBaseCase`
+ - `#new_target` optional warning when switching `target`
+ - `block` that is called when switching target and there were unsaved changes
+ - `#dirty?` helper method to check if there are changes
+ - `#before_loading_new_target` hook to allow child classes to anticipate when the `target` is going to change
+
### Changed
- - `Eco::API::UseCases::OozeSamples::Helpers::Shortcuts#object_reference` improved reference text
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
- - added resilience when switching target (i.e. from one stage to another stage in same entry)
- - added `batch_queue`
+- `Eco::API::UseCases::OozeSamples::Helpers::Shortcuts#object_reference` improved reference text
+- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
+ - added resilience when switching target (i.e. from one stage to another stage in same entry)
+ - added `batch_queue`
+
### Fixed
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
- - actual `batch_size` updates
- - actual safe switch of target (i.e. against another stage of same ooze)
+- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase`
+ - actual `batch_size` updates
+ - actual safe switch of target (i.e. against another stage of same ooze)
+
## [2.0.34] - 2021-08-28
### Added
- - `Eco::API::UseCases::OozeSamples::OozeBaseCase` refactored ooze base case
- - `Eco::API::UseCases::OozeSamples::RegisterUpdateCase` new case for full register update
+- `Eco::API::UseCases::OozeSamples::OozeBaseCase` refactored ooze base case
+- `Eco::API::UseCases::OozeSamples::RegisterUpdateCase` new case for full register update
+
### Changed
- - `Eco::API::UseCases::OozeSamples::OozeRunBaseCase` made child of `OozeBaseCase` and simplified to its essential
- - `Eco::API::UseCases::OozeSamples::OozeUpdateCase` remove unnecessary code and helpers that are now inherited from `OoozeBaseCase`
- - `Eco::API::UseCases::OozeSamples::OozeFromDocCase` remove unnecessary code
+- `Eco::API::UseCases::OozeSamples::OozeRunBaseCase` made child of `OozeBaseCase` and simplified to its essential
+- `Eco::API::UseCases::OozeSamples::OozeUpdateCase` remove unnecessary code and helpers that are now inherited from `OoozeBaseCase`
+- `Eco::API::UseCases::OozeSamples::OozeFromDocCase` remove unnecessary code
## [2.0.33] - 2021-08-16
### Added
- - `Eco::API::UseCases::OozeSamples::OozeFromDocCase` use case to abstract form from doc
- - `docx` dependency
- - A couple more of helpers for the Ooze Cases: `#titleize` & `#normalize_string`
+- `Eco::API::UseCases::OozeSamples::OozeFromDocCase` use case to abstract form from doc
+- `docx` dependency
+- A couple more of helpers for the Ooze Cases: `#titleize` & `#normalize_string`
+
### Changed
- - `ecoporta-api-v2` **gem** (upgrade dependency)
+- `ecoporta-api-v2` **gem** (upgrade dependency)
+
### Fixed
- - `Eco::API::UseCases::OozeSamples::OozeUpdateCase`, helper `with_stage`
+- `Eco::API::UseCases::OozeSamples::OozeUpdateCase`, helper `with_stage`
+
## [2.0.32] - 2021-07-14
### Fixed
- - `Eco::API::UseCases::OozeSamples::OozeUpdateCase` prompting user, fixed typo
- - `Eco::API::Session::Batch::Job`: `include-excluded` again... typo.
+- `Eco::API::UseCases::OozeSamples::OozeUpdateCase` prompting user, fixed typo
+- `Eco::API::Session::Batch::Job`: `include-excluded` again... typo.
+
## [2.0.31] - 2021-07-13
### Fixed
- - `Eco::API::Session::Batch::Job`: `include-excluded` was triggering a type error.
+- `Eco::API::Session::Batch::Job`: `include-excluded` was triggering a type error.
+
## [2.0.30] - 2021-07-08
### Added
- * `Eco::API::Common::People::DefaultParsers::XLSParser` uses as default the `fields_map.json` to identify the headers.
+- `Eco::API::Common::People::DefaultParsers::XLSParser` uses as default the `fields_map.json` to identify the headers.
+
### Fixed
- * `Eco::API::Common::People::DefaultParsers::XLSParser` should return all `String` values
+- `Eco::API::Common::People::DefaultParsers::XLSParser` should return all `String` values
+
## [2.0.29] - 2021-07-08
### Fixed
- - `Eco::API::Common::People::PersonEntryAttributeMapper#details_attrs`
- * What a mess this was doing to the `csv` export :/
+- `Eco::API::Common::People::PersonEntryAttributeMapper#details_attrs`
+ - What a mess this was doing to the `csv` export :/
+
## [2.0.27] - 2021-07-05
### Changed
- - Parent class `Eco::API::UseCases::DefaultCases::ToCsvCase` shouldn't know header maps necessary for `Eco::API::UseCases::DefaultCases::ToCsvDetailedCase`
- * Moved related header maps to `ToCsvDetailedCase`
+- Parent class `Eco::API::UseCases::DefaultCases::ToCsvCase` shouldn't know header maps necessary for `Eco::API::UseCases::DefaultCases::ToCsvDetailedCase`
+ - Moved related header maps to `ToCsvDetailedCase`
+
### Fixed
- - `--help` should work fine now
- - Attribute parsers that depended on indirect parser attributes were **not** included
- - **changed** a couple of classes
- - `Eco::API::Common::People::PersonEntryAttributeMapper`, where methods should receive `data` to re-scope if the data is available (most specifically `#internal_attrs`)
- - `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)
- - `Eco::API::Common::People::DefaultParsers::CSVParser`
- - indirect attributes that depended on other indirect attributes would show as missing even if they were active
- - i.e. `name` depends on `first-name` & `surname`, **AND** `details-name` depends on `name`
+- `--help` should work fine now
+- Attribute parsers that depended on indirect parser attributes were **not** included
+ - **changed** a couple of classes
+ - `Eco::API::Common::People::PersonEntryAttributeMapper`, where methods should receive `data` to re-scope if the data is available (most specifically `#internal_attrs`)
+ - `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)
+- `Eco::API::Common::People::DefaultParsers::CSVParser`
+ - indirect attributes that depended on other indirect attributes would show as missing even if they were active
+ - i.e. `name` depends on `first-name` & `surname`, **AND** `details-name` depends on `name`
+
## [2.0.26] - 2021-06-25
### Added
- - `Eco::API::MicroCases#set_supervisor`, tries to keep in sync the `#subordinates` **count** of previous and new supervisor
- - new **option** `-run-postlaunch` to run post launch cases, even when we run in `dry-run` mode
- * when in `dry-run` it will **not** reload the people base of the session
- - new **option** to append **new** entries to the `People` object
- * **invokable** on **cli** via `-append-starters` (`{people: {append_created: true}}`)
- * the following use cases include this option:
- * `Eco::API::UseCases::DefaultCases::UpsertCase`
- * `Eco::API::UseCases::DefaultCases::HrisCase`
- * `Eco::API::UseCases::DefaultCases::CreateDetailsWithSupervisorCase`
- * `Eco::API::UseCases::DefaultCases::CreateDetailsCase`
- * `Eco::API::UseCases::DefaultCases::CreateCase`
- * the option involves a new keyed argument `:append_created` in a couple of `MicroCases`
- * `Eco::API::MicroCases#with_each`: where internally the search is performed against a copy of the `People` object.
- * `Eco::API::MicroCases#with_each_starter`
- * when `--help` is invoked option to filter the shown `-options`, `-usecases` and `filters` by a word contained in the option.
- - **added** `csv` **header checks** for feed files, which entailed some changes:
- * `Eco::API::Common::Loaders::Parser`
- - new **subclass** `RequiredAttrs`, creatred when calling `.active_when_all` and `.active_when_any`
- - **dependency** injection via `.dependencies` as `{required_attrs: RequiredAttrs}`
- * **added** `Eco::API::Common::People::PersonParser#required_attrs` to offer all the `RequiredAttrs`, where defined
- - the **new method** `#required_attrs` to expose the injected `RequiredAttrs`
- * **new** keyed argument `check_headers:` in `Eco::API::Common::People::EntryFactory#entries`
- - subsequent changes to accommodate the new param in `Eco::API::Session#csv_entries`
- - `eco/cli/config/default/input` calls using this param to `true`
- * `Eco::API::Common::People::DefaultParsers::CSVParser`
- - added option `check_headers` via `dependencies` that enables the headers check
- - it will now offer detailed warning messages on what can happen with the **missing headers**
- * it will also list the **unknown header** names
+- `Eco::API::MicroCases#set_supervisor`, tries to keep in sync the `#subordinates` **count** of previous and new supervisor
+- new **option** `-run-postlaunch` to run post launch cases, even when we run in `dry-run` mode
+ - when in `dry-run` it will **not** reload the people base of the session
+- new **option** to append **new** entries to the `People` object
+ - **invokable** on **cli** via `-append-starters` (`{people: {append_created: true}}`)
+ - the following use cases include this option:
+ - `Eco::API::UseCases::DefaultCases::UpsertCase`
+ - `Eco::API::UseCases::DefaultCases::HrisCase`
+ - `Eco::API::UseCases::DefaultCases::CreateDetailsWithSupervisorCase`
+ - `Eco::API::UseCases::DefaultCases::CreateDetailsCase`
+ - `Eco::API::UseCases::DefaultCases::CreateCase`
+ - the option involves a new keyed argument `:append_created` in a couple of `MicroCases`
+ - `Eco::API::MicroCases#with_each`: where internally the search is performed against a copy of the `People` object.
+ - `Eco::API::MicroCases#with_each_starter`
+ - when `--help` is invoked option to filter the shown `-options`, `-usecases` and `filters` by a word contained in the option.
+- **added** `csv` **header checks** for feed files, which entailed some changes:
+ - `Eco::API::Common::Loaders::Parser`
+ - new **subclass** `RequiredAttrs`, creatred when calling `.active_when_all` and `.active_when_any`
+ - **dependency** injection via `.dependencies` as `{required_attrs: RequiredAttrs}`
+ - **added** `Eco::API::Common::People::PersonParser#required_attrs` to offer all the `RequiredAttrs`, where defined
+ - the **new method** `#required_attrs` to expose the injected `RequiredAttrs`
+ - **new** keyed argument `check_headers:` in `Eco::API::Common::People::EntryFactory#entries`
+ - subsequent changes to accommodate the new param in `Eco::API::Session#csv_entries`
+ - `eco/cli/config/default/input` calls using this param to `true`
+ - `Eco::API::Common::People::DefaultParsers::CSVParser`
+ - added option `check_headers` via `dependencies` that enables the headers check
+ - it will now offer detailed warning messages on what can happen with the **missing headers**
+ - it will also list the **unknown header** names
+
### Changed
- - `Eco::API::MicroCases#set_supervisor`, the order of the 2 first parameters
- - `Eco::API::Organization::People`: internally `@by_id` cache Hash included `nil` values => **not** any more.
- - removed **unused** methods on **patches** for `Ecoportal::API::V1::Person` and `Ecoportal::API::Internal::Person`
- * specifically `#reset_account!` and `#consolidate_account!` as well as `#reset_details!` and `#consolidate_details!`
- - internal changes in `Eco::API::Common::People::Entries#entry`
- * **added** option to trigger `MultipleSearchResults` StandardError when multiple candiates are found.
- * **removed** `nil` values from the `caches` (the Hashes to optimize the search)
- - slight structure refactor of `Eco::API::Common::Loaders`
- * moved base class to subfolder/namespace
- * decoupled pure `Loader` logics to `Loaders::Base` and use case inheriance chain loader to `Loaders::CaseBase`
- - `Eco::API::Session::BatchJob` the `post_launch`:
- * sets the `id` to the `person` if it was **created** successfully
- * when in `dry-run` it fakes the `id` with a counter
- - `Eco::API::Common::People::PersonFactory` gets `subordinates` initialized to `0` (when **creating** a `new` person)
+- `Eco::API::MicroCases#set_supervisor`, the order of the 2 first parameters
+- `Eco::API::Organization::People`: internally `@by_id` cache Hash included `nil` values => **not** any more.
+- removed **unused** methods on **patches** for `Ecoportal::API::V1::Person` and `Ecoportal::API::Internal::Person`
+ - specifically `#reset_account!` and `#consolidate_account!` as well as `#reset_details!` and `#consolidate_details!`
+- internal changes in `Eco::API::Common::People::Entries#entry`
+ - **added** option to trigger `MultipleSearchResults` StandardError when multiple candiates are found.
+ - **removed** `nil` values from the `caches` (the Hashes to optimize the search)
+- slight structure refactor of `Eco::API::Common::Loaders`
+ - moved base class to subfolder/namespace
+ - decoupled pure `Loader` logics to `Loaders::Base` and use case inheriance chain loader to `Loaders::CaseBase`
+- `Eco::API::Session::BatchJob` the `post_launch`:
+ - sets the `id` to the `person` if it was **created** successfully
+ - when in `dry-run` it fakes the `id` with a counter
+- `Eco::API::Common::People::PersonFactory` gets `subordinates` initialized to `0` (when **creating** a `new` person)
+
## [2.0.25] - 2021-06-23
### Added
- - `Eco::API::UseCases::DefaultCases::HrisCase` validation error to require `-schema-id` command line when there are people in schemas other than the active one
+- `Eco::API::UseCases::DefaultCases::HrisCase` validation error to require `-schema-id` command line when there are people in schemas other than the active one
+
### Changed
- - `Eco::API::Session::Batch::Job`
- * for backwards compatibility `-include-only-excluded` should bring an options structure compatible with `-include-excluded`
+- `Eco::API::Session::Batch::Job`
+ - for backwards compatibility `-include-only-excluded` should bring an options structure compatible with `-include-excluded`
+
### Fixed
- - `Eco::API::Session::Batch` fixed typo that would prevent `prompt_user` to work
+- `Eco::API::Session::Batch` fixed typo that would prevent `prompt_user` to work
+
## [2.0.24] - 2021-06-22
### Added
- - `Eco::API::Session::Batch::Job` made **native** `-include-excluded`
- * also added new option `-include-only-excluded` to be able to only target people HRIS excluded
+- `Eco::API::Session::Batch::Job` made **native** `-include-excluded`
+ - also added new option `-include-only-excluded` to be able to only target people HRIS excluded
+
## [2.0.23] - 2021-06-22
### Added
- - `Eco::API::Session::Batch::Job` **new** option (`-save-requests`) to save requests even if in `dry-run` (`-simulate`)
+
+- `Eco::API::Session::Batch::Job` **new** option (`-save-requests`) to save requests even if in `dry-run` (`-simulate`)
+
### Changed
- - `Eco::API::Session::Batch::Job` new people won't create updates unless they have either details or account
- * because that entry is not supposed to be created unless has account or details
+- `Eco::API::Session::Batch::Job` new people won't create updates unless they have either details or account
+ - because that entry is not supposed to be created unless has account or details
+
## [2.0.22] - 2021-06-18
### Added
- - exposed `logger` in `BaseLoader` and
- - support for multiple input files
- * `Eco::API::Common::People::EntryFactory#entries`:
- - refactored to allow multiple input files parsing
- - moreover to `idx`, hash entries will get their `source_file`
- * Input callback at `lib/eco/cli/config/default/input` refactored format detection and enabled folder input
- * `SCR.get_file` language extended to also mention folder (not just file)
- - support for `.xls` and `.xlsx` files
- * `Eco::API::Common::People::DefaultParsers::XLSParser` the Excel files **parser**
- * `Eco::API::Common::People::PersonParser` added `:xls` as an accepted format
- * `Eco::API::Session#fields_mapper` exposed mapper through a method to allow **headers detection**
- - The external names of the fields are the column headers of the input file
- * `Eco::API::UseCases::BaseIO` when arguments validation rails, now it raises with specific `MissingParameter` error
+- exposed `logger` in `BaseLoader` and
+- support for multiple input files
+ - `Eco::API::Common::People::EntryFactory#entries`:
+ - refactored to allow multiple input files parsing
+ - moreover to `idx`, hash entries will get their `source_file`
+ - Input callback at `lib/eco/cli/config/default/input` refactored format detection and enabled folder input
+ - `SCR.get_file` language extended to also mention folder (not just file)
+- support for `.xls` and `.xlsx` files
+ - `Eco::API::Common::People::DefaultParsers::XLSParser` the Excel files **parser**
+ - `Eco::API::Common::People::PersonParser` added `:xls` as an accepted format
+ - `Eco::API::Session#fields_mapper` exposed mapper through a method to allow **headers detection**
+ - The external names of the fields are the column headers of the input file
+ - `Eco::API::UseCases::BaseIO` when arguments validation rails, now it raises with specific `MissingParameter` error
+
### Changed
- - dry out `BaseLoader` (only session is set as instance variable)
- - removed `creek` **dependency** (it was not used anywhere in the gem)
- * we just kept `roo` and `roo-xls`
- - custom `Error` classes now all inherit from `StandardError` (rather than `Exception`)
+- dry out `BaseLoader` (only session is set as instance variable)
+- removed `creek` **dependency** (it was not used anywhere in the gem)
+ - we just kept `roo` and `roo-xls`
+- custom `Error` classes now all inherit from `StandardError` (rather than `Exception`)
+
## [2.0.21] - 2021-06-04
### Added
- - `Eco::CSV::Table`, support to create the table out of an `Array<Hash>`
- - This opens new methods to transform input Excel file to this data structure and unify input data structures.
- - **new** use case `Eco::API::UseCases::DefaultCases::CleanUnknownTags` invokable via `clean-unknown-tags`
+- `Eco::CSV::Table`, support to create the table out of an `Array<Hash>`
+ - This opens new methods to transform input Excel file to this data structure and unify input data structures.
+- **new** use case `Eco::API::UseCases::DefaultCases::CleanUnknownTags` invokable via `clean-unknown-tags`
+
### Changed
- - `Eco::API::Common::People::EntryFactory` slight **refactor** to boost better support for multiple input formats
+- `Eco::API::Common::People::EntryFactory` slight **refactor** to boost better support for multiple input formats
+
## [2.0.20] - 2021-05-31
### Added
- - **dependencies** to `creek`, `roo` and `roo-xls`
- - **dependencies** to `hashdiff`
- - `Eco::API::Session#parse_attribute` => added missing parameter `deps:`
- - new option `-stdout [file]` to redirect the output to a file
- - `Eco::CSV::Table`, **added** more helper methods `#group_by`, `#transform_values`, `#slice`, `#slice_columns`, `#delete_column`
- - `Eco::API::Organization::TagTree` **added** more helper methods: `top?`, `tag=`, `as_json`, `dup`, `diff`
+- **dependencies** to `creek`, `roo` and `roo-xls`
+- **dependencies** to `hashdiff`
+- `Eco::API::Session#parse_attribute` => added missing parameter `deps:`
+- new option `-stdout [file]` to redirect the output to a file
+- `Eco::CSV::Table`, **added** more helper methods `#group_by`, `#transform_values`, `#slice`, `#slice_columns`, `#delete_column`
+- `Eco::API::Organization::TagTree` **added** more helper methods: `top?`, `tag=`, `as_json`, `dup`, `diff`
+
### Fixed
- - `Exception` patch: when `SystemStackError` there is not `backtrace` :/
+- `Exception` patch: when `SystemStackError` there is not `backtrace` :/
+
## [2.0.19] - 2021-05-31
### Added
- - Better error message for people searches & **offer** to select among the candidates:
- - `Eco::API::Organization::People::MultipleSearchResults`, triggered from `Eco::API::Organization::People#find`
- - `Eco::API::MicroCases#with_each` will offer the selection of candidates
+- Better error message for people searches & **offer** to select among the candidates:
+ - `Eco::API::Organization::People::MultipleSearchResults`, triggered from `Eco::API::Organization::People#find`
+ - `Eco::API::MicroCases#with_each` will offer the selection of candidates
+
### Changed
- - **renamed** and repurposed `Eco::API::Organization::PeopleAnalytics` to `PeopleSimilarity`
+- **renamed** and repurposed `Eco::API::Organization::PeopleAnalytics` to `PeopleSimilarity`
+
### Fixed
- - `Eco::Data::FuzzyMatch` adjustments for configuration propagation + some fixes
- - Command option `-entries-from` can still be useful when used to obtain `-get-partial` of people base for `:export` use cases !!
+- `Eco::Data::FuzzyMatch` adjustments for configuration propagation + some fixes
+- Command option `-entries-from` can still be useful when used to obtain `-get-partial` of people base for `:export` use cases !!
+
## [2.0.18] - 2021-05-25
### Added
- - **`-one-off`** option to not having to type the `-api-key` every time you launch one-off scripts
- - `-api-key` will store the key to the `./.env_one_off` file (supports update and multi-environment)
+- **`-one-off`** option to not having to type the `-api-key` every time you launch one-off scripts
+ - `-api-key` will store the key to the `./.env_one_off` file (supports update and multi-environment)
+
### Fixed
- - patched `Exception#patch_full_message` to do not enter into a cyclic error rescue
- - also rescue on `workflow.rescue`
+- patched `Exception#patch_full_message` to do not enter into a cyclic error rescue
+- also rescue on `workflow.rescue`
+
## [2.0.17] - 2021-05-25
Specific changes due to eP **release `1.5.9.70`** (_Policy Group Abilities_)
- - And some improvements as well as new tools
+- And some improvements as well as new tools
+
### Added
- - `Eco::API::Organization::PresetsFactory` added integrity validation for `person_abilities` ability
- - `Eco::API::Organization::PresetsFactory`
- - `#validate`: returns an `Array` with all the errors that a `permissions_custom` has
- - `#valid?`: checks if a `permissions_custom` is valid
- - `Eco::API::Organization::PeopleAnalytics`: a **helper** class to identify things in the People Manager and provide mitigation action methods to resolve them.
- - Added dependencies to `fuzzy_match`, `amatch` and `jaro_winkler` **gems**
- - `Eco::Data::FuzzyMatch` with string match helpers and a set of home-made generic libs.
- - `Eco::API::Organization::PeopleAnalytics` to launch analysis on the People Manager
- - `Eco::API::UseCases::DefaultCases::AnalysePeople` invokable via `-analyse-people`
- - **new** -> a way to define a hierarchy of options (at least of 1 Level)
- - `API::CLI::Config::OptionsSet`
- - `API::CLI::Config::UseCases::CaseConfig`
- - Integrated the new feature to the `--help` command and methods.
- - **Usecase** `Eco::API::UseCases::DefaultCases::ResetLandingPageCase` added parameter to specify `-page-id`
- - `Eco::API::Common::BaseLoader` new shortcut methods `#micro` (_MicroCases_), `#session` and `#config`
- - At this stage of the execution workflow it uses `ASSETS.session`
- - **Important note**: when the `#parser` or `#serializer` are called the `ASSETS.session` might already be linked to the specific invoked environment
- - New method helpers in `Ecoporta::API::MicroCases`
- - `preserve_filter_tags`, `preserve_default_tag` and `preserve_policy_groups`
+- `Eco::API::Organization::PresetsFactory` added integrity validation for `person_abilities` ability
+- `Eco::API::Organization::PresetsFactory`
+ - `#validate`: returns an `Array` with all the errors that a `permissions_custom` has
+ - `#valid?`: checks if a `permissions_custom` is valid
+- `Eco::API::Organization::PeopleAnalytics`: a **helper** class to identify things in the People Manager and provide mitigation action methods to resolve them.
+ - Added dependencies to `fuzzy_match`, `amatch` and `jaro_winkler` **gems**
+ - `Eco::Data::FuzzyMatch` with string match helpers and a set of home-made generic libs.
+ - `Eco::API::Organization::PeopleAnalytics` to launch analysis on the People Manager
+ - `Eco::API::UseCases::DefaultCases::AnalysePeople` invokable via `-analyse-people`
+- **new** -> a way to define a hierarchy of options (at least of 1 Level)
+ - `API::CLI::Config::OptionsSet`
+ - `API::CLI::Config::UseCases::CaseConfig`
+ - Integrated the new feature to the `--help` command and methods.
+- **Usecase** `Eco::API::UseCases::DefaultCases::ResetLandingPageCase` added parameter to specify `-page-id`
+- `Eco::API::Common::BaseLoader` new shortcut methods `#micro` (_MicroCases_), `#session` and `#config`
+ - At this stage of the execution workflow it uses `ASSETS.session`
+ - **Important note**: when the `#parser` or `#serializer` are called the `ASSETS.session` might already be linked to the specific invoked environment
+- New method helpers in `Ecoporta::API::MicroCases`
+ - `preserve_filter_tags`, `preserve_default_tag` and `preserve_policy_groups`
+
### Changed
- - upgraded dependency on `ecoportal-api` and `ecoportal-api-v2`
- - **removed** `Eco::API::MicroCases#refresh_abilities`
- - `Eco::API::MicroCases#set_account` **removed** `refresh_abilities`
- - `Eco::API::MicroCases#append_usergroups` **removed** `refresh_abilities`
- - **removed** _usecase_ `Eco::API::UseCases::DefaultCases::RefreshAbilitiesCase` (`-refresh-abilities`)
- - `Eco::API::Policies::DefaultPolicies::UserAccess`: **removed** `refresh_abilities`
- - **removed** `Eco::API::Session#new_preset`
- - `Eco::API::Organization::PresetsFactory`
- - **removed** `rspecs`
- - `.new`: **removed** parameters `presets_custom` & `presets_map`
- - **removed** constants `DEFAULT_CUSTOM`, and `DEFAULT_MAP`
- - **removed** private methods `#presets_custom` and `#presets_map`
- - **changed** private method `#compile` receives directly an array of `permissions_custom`
- - `Eco::API::Session::Config` **removed** methods `#presets_custom=` & `presets_map=`
- - `Eco::API::Session::Config::People` **removed** methods `#presets_custom=`, `#presets_map=`,`#presets_custom` & `#presets_map`
- - **removed** `eco/api/organization/presets_reference.json`
- - **moved** case-specific options to only be active when the user case is previously invoked in the command line.
+- upgraded dependency on `ecoportal-api` and `ecoportal-api-v2`
+- **removed** `Eco::API::MicroCases#refresh_abilities`
+ - `Eco::API::MicroCases#set_account` **removed** `refresh_abilities`
+ - `Eco::API::MicroCases#append_usergroups` **removed** `refresh_abilities`
+ - **removed** _usecase_ `Eco::API::UseCases::DefaultCases::RefreshAbilitiesCase` (`-refresh-abilities`)
+- `Eco::API::Policies::DefaultPolicies::UserAccess`: **removed** `refresh_abilities`
+- **removed** `Eco::API::Session#new_preset`
+- `Eco::API::Organization::PresetsFactory`
+ - **removed** `rspecs`
+ - `.new`: **removed** parameters `presets_custom` & `presets_map`
+ - **removed** constants `DEFAULT_CUSTOM`, and `DEFAULT_MAP`
+ - **removed** private methods `#presets_custom` and `#presets_map`
+ - **changed** private method `#compile` receives directly an array of `permissions_custom`
+- `Eco::API::Session::Config` **removed** methods `#presets_custom=` & `presets_map=`
+ - `Eco::API::Session::Config::People` **removed** methods `#presets_custom=`, `#presets_map=`,`#presets_custom` & `#presets_map`
+- **removed** `eco/api/organization/presets_reference.json`
+- **moved** case-specific options to only be active when the user case is previously invoked in the command line.
+
### Fixed
- - **handle** `Ecoportal::API:Errors::TimeOut` in `Eco::API::Session::Batch` by offering to retry.
+- **handle** `Ecoportal::API:Errors::TimeOut` in `Eco::API::Session::Batch` by offering to retry.
+
## [2.0.16] - 2021-05-04
### Added
- - Use case `Eco::API::UseCases::DefaultCases::SupersCyclicIdentify`, invokable via `-identify-cyclic-supers`
- - Use case `Eco::API::UseCases::DefaultCases::AbstractPolicyGroupAbilities`, invokable via `-abstract-policygroup-abilities`
- - Option to run `one-off` scripts, without org configurations:
- 1. `-api-key INTERNAL_API_KEY`
- 2. `-enviro [live|pre.dev]`
- 3. `-org NAME_OF_ORG`
+- Use case `Eco::API::UseCases::DefaultCases::SupersCyclicIdentify`, invokable via `-identify-cyclic-supers`
+- Use case `Eco::API::UseCases::DefaultCases::AbstractPolicyGroupAbilities`, invokable via `-abstract-policygroup-abilities`
+- Option to run `one-off` scripts, without org configurations:
+ 1. `-api-key INTERNAL_API_KEY`
+ 2. `-enviro [live|pre.dev]`
+ 3. `-org NAME_OF_ORG`
+
## [2.0.15] - 2021-04-29
### Added
- - Use case `Eco::API::UseCases::DefaultCases::SupersHierarchy`, invokable via `-supers-hierarchy`
+
+- Use case `Eco::API::UseCases::DefaultCases::SupersHierarchy`, invokable via `-supers-hierarchy`
+
### Fixed
- - `eco/cli/config/default/workflow.rb` prevent `rescue` looping
+- `eco/cli/config/default/workflow.rb` prevent `rescue` looping
+
## [2.0.14] - 2021-04-15
### Added
- - `Eco::API::UseCases::DefaultCases::ToCsvCase` added option `-internal-names` to avoid overriding data on export
- - `Eco::API::Common::People::PersonEntry#mapped_entry` exposed method for raw `csv` generation
- - `Eco::API::Organization::PresetsFactory` added integrity validation for `person_*` abilities
- - `Eco::API::Session::Batch::Job` more debug info on erron handlers
+- `Eco::API::UseCases::DefaultCases::ToCsvCase` added option `-internal-names` to avoid overriding data on export
+- `Eco::API::Common::People::PersonEntry#mapped_entry` exposed method for raw `csv` generation
+- `Eco::API::Organization::PresetsFactory` added integrity validation for `person_*` abilities
+- `Eco::API::Session::Batch::Job` more debug info on erron handlers
+
### Fixed
- - `Eco::API::Error.get_type` was almost always matching `Eco::API::Error::Unclassified` -> fixed
+- `Eco::API::Error.get_type` was almost always matching `Eco::API::Error::Unclassified` -> fixed
+
## [2.0.13] - 2021-03-31
### Added
- - Stats on the `Eco::API::Session::Batch`
- - Allow to inherit and re-use the `Eco::API::UseCases::DefaultCase::HrisCase`
+- Stats on the `Eco::API::Session::Batch`
+- Allow to inherit and re-use the `Eco::API::UseCases::DefaultCase::HrisCase`
+
### Fixed
- - Ensure auto-loading for `Eco::API::UseCases`
+- Ensure auto-loading for `Eco::API::UseCases`
+
## [2.0.12] - 2021-03-29
### Changed
- - `Eco::CLI#run` it does include any defined states on the workflow
+- `Eco::CLI#run` it does include any defined states on the workflow
## [2.0.11] - 2021-03-29
### Fixed
- - `Eco::API::Session::Batch:Errors#errors` changed `Array#filter` call to `Array#select` call
+- `Eco::API::Session::Batch:Errors#errors` changed `Array#filter` call to `Array#select` call
+
## [2.0.10] - 2021-03-26
### Added
- - `Eco::API::Common::People::PersonParser`
- - `#defined_attrs`: list of all attribute defined parsers (regardless they belong to the model)
- - `Eco::API::Organization::TagTree` methods
- - `#total_depth` to know the total depth of a tree
- - `#flat?` to know if the tagtree has only 1 level
+- `Eco::API::Common::People::PersonParser`
+ - `#defined_attrs`: list of all attribute defined parsers (regardless they belong to the model)
+- `Eco::API::Organization::TagTree` methods
+ - `#total_depth` to know the total depth of a tree
+ - `#flat?` to know if the tagtree has only 1 level
+
### Changed
- - `Eco::API::Common::People::PersonParser`
- - Renamed `#all_attrs` to `#all_model_attrs`
- - Ranamed `#defined_attrs` to `#defined_model_attrs`
- - Ranamed `#undefined_attrs` to `#undefined_model_attrs`
+- `Eco::API::Common::People::PersonParser`
+ - Renamed `#all_attrs` to `#all_model_attrs`
+ - Ranamed `#defined_attrs` to `#defined_model_attrs`
+ - Ranamed `#undefined_attrs` to `#undefined_model_attrs`
+
## [2.0.9] - 2021-03-19
### Changed
- - `Eco::API::Session::Batch:Errors#person_ref` moved to the public method
+- `Eco::API::Session::Batch:Errors#person_ref` moved to the public method
+
## [2.0.8] - 2021-03-09
### Fixed
- - `Ecoportal::API::V1::Person#identity` adjust behavior
+- `Ecoportal::API::V1::Person#identity` adjust behavior
+
## [2.0.7] - 2021-03-09
### Fixed
- - `Eco::API::Session::Batch::JobsGroups` and `Eco::API::Session::Batch::Jobs`: when new `Batch::Job`s are creating during launch, they remained unlaunched
- - this fix makes `#launch` method to iterate until there are no pending
+- `Eco::API::Session::Batch::JobsGroups` and `Eco::API::Session::Batch::Jobs`: when new `Batch::Job`s are creating during launch, they remained unlaunched
+ - this fix makes `#launch` method to iterate until there are no pending
+
## [2.0.6] - 2021-03-08
### Changed
- - `Eco::API::Session::Batch:Errors` moved some methods to be private
+
+- `Eco::API::Session::Batch:Errors` moved some methods to be private
+
### Fixed
- - `Eco::API::Error` should inherit from `StandardError`, rather than from `Exception`
+- `Eco::API::Error` should inherit from `StandardError`, rather than from `Exception`
+
## [2.0.5] - 2021-02-24
### Fixed
- - `Eco::API::Common::People::PersonParser#symbol_keys` to use `Array#select`
- - as `Array#filter` was introduced in ruby `2.5.5`
+- `Eco::API::Common::People::PersonParser#symbol_keys` to use `Array#select`
+ - as `Array#filter` was introduced in ruby `2.5.5`
+
## [2.0.4] - 2021-02-23
### Changed
- - `Eco::API::Common::People::PersonParser#defined_attrs` to include virtual attributes
+- `Eco::API::Common::People::PersonParser#defined_attrs` to include virtual attributes
+
## [2.0.3] - 2021-02-23
### Added
- - `Eco::API::UseCases::OozeSamples::OozeUpdateCase`: added integration to update page instances (non-templates)
+- `Eco::API::UseCases::OozeSamples::OozeUpdateCase`: added integration to update page instances (non-templates)
+
### Fixed
- - `Eco::API::Policies::DefaultPolicies::UserAccess` complete default policy code.
+- `Eco::API::Policies::DefaultPolicies::UserAccess` complete default policy code.
+
## [2.0.2] - 2021-02-22
### Changed
- - upgraded dependencies with `ecoportal-api`
+- upgraded dependencies with `ecoportal-api`
+
## [2.0.1] - 2021-02-22
### Changed
- - upgraded dependencies with `ecoportal-api-oozes` to `ecoportal-api-v2`
+- upgraded dependencies with `ecoportal-api-oozes` to `ecoportal-api-v2`
+
## [1.5.15] - 2021-02-17
### Added
- - `Eco::API::Common::ClassHelpers` added support for class methods inheritance
- - this is key to be able to define usecase models to inherit from
- - `Eco::API::UseCases::OozeSamples::OozeUpdateCase`: added this sample to inherit from (simplifying use cases code)
- - `Eco::API::Common::ClassHelpers` added inheritable attribute values
- - added benchmarking to people loaders:
- - `Eco::API::MicroCases#people_load`
- - `Eco::API::MicroCases#people_cache`
- - `Eco::API::MicroCases#people_search`
- - `Eco::API::MicroCases#refresh`
+- `Eco::API::Common::ClassHelpers` added support for class methods inheritance
+ - this is key to be able to define usecase models to inherit from
+- `Eco::API::UseCases::OozeSamples::OozeUpdateCase`: added this sample to inherit from (simplifying use cases code)
+- `Eco::API::Common::ClassHelpers` added inheritable attribute values
+- added benchmarking to people loaders:
+ - `Eco::API::MicroCases#people_load`
+ - `Eco::API::MicroCases#people_cache`
+ - `Eco::API::MicroCases#people_search`
+ - `Eco::API::MicroCases#refresh`
+
### Fixed
- - `Eco::API::Policies::DefaultPolicies::UserAccess` typos in default api policy
+- `Eco::API::Policies::DefaultPolicies::UserAccess` typos in default api policy
+
## [1.5.14] - 2021-02-05
### Added
- - `Eco::API::Policies::DefaultPolicies` policies that are run always (after the custom policies)
- - `Eco::API::Policies::DefaultPolicies::UserAccess`:
- - remove account if there's no `email`
- - provision min user level to those with account (if no usergroup and no abilities)
- - `Eco::API::Session#policies` which merges the default policies to be added/run after the custom policies
- - `Eco::API::Common::Session::Logger`: add caching of logs
- - `Eco::API::Common::Session::Logger::Cache` new class to manage cached logs
- - `Eco::API::Common::Session::Logger::Log` new class to have a trace on logs
- - `Eco::API::Session::Batch::Job#summary` added subjobs (error handlers) summary
+- `Eco::API::Policies::DefaultPolicies` policies that are run always (after the custom policies)
+ - `Eco::API::Policies::DefaultPolicies::UserAccess`:
+ - remove account if there's no `email`
+ - provision min user level to those with account (if no usergroup and no abilities)
+- `Eco::API::Session#policies` which merges the default policies to be added/run after the custom policies
+- `Eco::API::Common::Session::Logger`: add caching of logs
+ - `Eco::API::Common::Session::Logger::Cache` new class to manage cached logs
+ - `Eco::API::Common::Session::Logger::Log` new class to have a trace on logs
+- `Eco::API::Session::Batch::Job#summary` added subjobs (error handlers) summary
+
### Changed
- - `Eco::API::Session::Batch::Job#launch` it will also run the default api policies before feedback and query launch
- - `Eco::API::Common::People::PersonEntry` add error log when wrong email error is detected
- - previously it would have crashed
+- `Eco::API::Session::Batch::Job#launch` it will also run the default api policies before feedback and query launch
+- `Eco::API::Common::People::PersonEntry` add error log when wrong email error is detected
+ - previously it would have crashed
+
## [1.5.13] - 2021-02-01
### Changed
- - upgraded dependency with `ecoportal-api-oozes`
+- upgraded dependency with `ecoportal-api-oozes`
+
### Fixed
- - `Eco::API::Session::Config::Api` was not including the correct `host`
- - this could have launched an `api` request to `live.ecoportal.com` when targeting `pre.dev`
+- `Eco::API::Session::Config::Api` was not including the correct `host`
+ - this could have launched an `api` request to `live.ecoportal.com` when targeting `pre.dev`
+
## [1.5.12] - 2021-02-01
### Added
- - `Eco::API::Common::People::DefaultParsers::CSVParser` when cell content is `Null`, capture `nil` value.
+- `Eco::API::Common::People::DefaultParsers::CSVParser` when cell content is `Null`, capture `nil` value.
+
### Changed
- - upgraded `ecoportal-api` dependency
+- upgraded `ecoportal-api` dependency
+
## [1.5.11] - 2021-01-25
### Added
- - `Eco::API::Organization::TagTree#subtag?` to check if the tag is in any subtree.
+- `Eco::API::Organization::TagTree#subtag?` to check if the tag is in any subtree.
+
### Fixed
- - `Eco::API::MicroCases#set_supervisor` shouldn't set it if the entry does not have it.
+- `Eco::API::MicroCases#set_supervisor` shouldn't set it if the entry does not have it.
+
## [1.5.10] - 2021-01-19
### Fixed
- - `Eco::API::Session::Batch::Errors#print` show the row number of the input data.
+- `Eco::API::Session::Batch::Errors#print` show the row number of the input data.
+
## [1.5.9] - 2021-01-08
### Added
- - `Eco::API::Organization::TagTree#subtags` to get all the tags but those of the highest level.
+- `Eco::API::Organization::TagTree#subtags` to get all the tags but those of the highest level.
+
## [1.5.8] - 2021-01-05
### Fixed
- - `Eco::API::Session::Batch::Jobs#job` shouldn't be calling the post-launch callback function on creation.
- - `Eco::API::Session#new_job` should include a `&block` parameter.
- - `Eco::API::UseCases::DefaultCases::RefreshCase`: fixed typo
+- `Eco::API::Session::Batch::Jobs#job` shouldn't be calling the post-launch callback function on creation.
+- `Eco::API::Session#new_job` should include a `&block` parameter.
+- `Eco::API::UseCases::DefaultCases::RefreshCase`: fixed typo
+
## [1.5.7] - 2020-12-17
### Fixed
- - `Eco::API::Sesssion#parse_attribute` was not using phase argument
+- `Eco::API::Sesssion#parse_attribute` was not using phase argument
+
## [1.5.6] - 2020-12-04
### Fixed
- - `Eco::API::UseCases::DefaultCases::RestoreDBCase` fixed typo and slightly improved
- - fixed some back-end errors when chaining usecases
- - `Eco::API::UseCases::DefaultCases::OrgDataConvertCase` improved
+- `Eco::API::UseCases::DefaultCases::RestoreDBCase` fixed typo and slightly improved
+- fixed some back-end errors when chaining usecases
+- `Eco::API::UseCases::DefaultCases::OrgDataConvertCase` improved
+
## [1.5.5] - 2020-12-03
### Fixed
- - rubies previous to `2.5` do not have `yield_self`
+- rubies previous to `2.5` do not have `yield_self`
+
## [1.5.4] - 2020-12-02
### Added
- - update `ecoportal-api` dependency
+
+- update `ecoportal-api` dependency
+
### Fixed
- - `Eco::API::MicroCases#people_refresh` typo
+- `Eco::API::MicroCases#people_refresh` typo
+
## [1.5.3] - 2020-11-30
### Fixed
- - `Eco::API::Session::Batch::RequestStats#blanked_value?` better blank detection
- - `Eco::API::MicroCases#with_each_starter` rectified typo
+- `Eco::API::Session::Batch::RequestStats#blanked_value?` better blank detection
+- `Eco::API::MicroCases#with_each_starter` rectified typo
+
## [1.5.2] - 2020-11-26
### Added
- - **custom** usecases, policies and error handlers can now be **declared within its own class**
- * helper classes to inherit from: `Eco::API::Custom::UseCase`, `Eco::API::Custom::Policy`, `Eco::API::Custom::ErrorHandler` and `Eco::API::Custom::Parser`
- * please, notice that you should create new classes under the following namespaces
- - `Custom::UseCase`: custom use cases
- - `Custom::Policy`: custom policy
- - `Custom::ErrorHandler`: custom error handler
- - `Custom::Parser`: custom parser
- * this also allows to inherit from existing defaults and models (models to come)
- - implemented first **microcases** (evaluation stage): to be able to centralize common code between use cases
- - see `Eco::API::MicroCases` class
- - **command line** added `--help` to list all `usecases`, `options` and `filters`
- * `--help -options` will print a documented overview of options
- * `--help -filters` will print a documented overview of people filters
- * `--help -input-filters` will print a documented overview of input data filters
- * `--help -usecases` will print a documented overview of the usecases
- - **command line** filters for `filter_tags` on:
- * input data: `-input-filter-tags-all`, `input-filter-tags-any`, `input-filter-tags-tree`
- * people data: `-filter-tags-all`, `-filter-tags-any`, `-filter-tags-tree`
- - **batch stats** & **batch policy**
- * `Eco::API::Session::Batch::RequestStats`: included additional guide on what has been **blanked**.
- - now on you should see how many have been blanked, i.e.: `blanked_email`, `blanked_filter_tags`, `blanked_policy_group_ids`, `blanked_supervisor_id`
- * 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**
- - **csv** generation (`-people-to-csv` and `-people-to-csv -detailed`):
- * now includes `"Has Account?"` new column
- * removed the useless `send_invites` column
- - **errors** improved error message when setting values to a `person` from an `entry`:
- * it now shows the **row number**
- * it now gives the specific value that failed in case of `Exception`
- - `Eco::API::Common::DefaultPasers::LoginProvidersParser`: made native
- - `Eco::API::UseCases::DefaultUsecases::TransferAccountCase`: added `-transer-account-from` usecase
- * to allow actually transfer an account/user from one person to another in the org
- - `Ecoportal::API::V1::Person#entry`: method to be able to have a reference to the update/creation input data entry.
- - new filter methods for `Eco::API::Common::People::Entries` and `Eco::API::Organization::People`
- * `#filter_tags_any` & `#filter_tags_all`: those that have any or all the target tags
- * `#policy_group_ids_any` & `#policy_groups_all`: those that have any or all the target policy groups
+- **custom** usecases, policies and error handlers can now be **declared within its own class**
+ - helper classes to inherit from: `Eco::API::Custom::UseCase`, `Eco::API::Custom::Policy`, `Eco::API::Custom::ErrorHandler` and `Eco::API::Custom::Parser`
+ - please, notice that you should create new classes under the following namespaces
+ - `Custom::UseCase`: custom use cases
+ - `Custom::Policy`: custom policy
+ - `Custom::ErrorHandler`: custom error handler
+ - `Custom::Parser`: custom parser
+ - this also allows to inherit from existing defaults and models (models to come)
+- implemented first **microcases** (evaluation stage): to be able to centralize common code between use cases
+ - see `Eco::API::MicroCases` class
+- **command line** added `--help` to list all `usecases`, `options` and `filters`
+ - `--help -options` will print a documented overview of options
+ - `--help -filters` will print a documented overview of people filters
+ - `--help -input-filters` will print a documented overview of input data filters
+ - `--help -usecases` will print a documented overview of the usecases
+- **command line** filters for `filter_tags` on:
+ - input data: `-input-filter-tags-all`, `input-filter-tags-any`, `input-filter-tags-tree`
+ - people data: `-filter-tags-all`, `-filter-tags-any`, `-filter-tags-tree`
+- **batch stats** & **batch policy**
+ - `Eco::API::Session::Batch::RequestStats`: included additional guide on what has been **blanked**.
+ - now on you should see how many have been blanked, i.e.: `blanked_email`, `blanked_filter_tags`, `blanked_policy_group_ids`, `blanked_supervisor_id`
+ - 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**
+- **csv** generation (`-people-to-csv` and `-people-to-csv -detailed`):
+ - now includes `"Has Account?"` new column
+ - removed the useless `send_invites` column
+- **errors** improved error message when setting values to a `person` from an `entry`:
+ - it now shows the **row number**
+ - it now gives the specific value that failed in case of `Exception`
+- `Eco::API::Common::DefaultPasers::LoginProvidersParser`: made native
+- `Eco::API::UseCases::DefaultUsecases::TransferAccountCase`: added `-transer-account-from` usecase
+ - to allow actually transfer an account/user from one person to another in the org
+- `Ecoportal::API::V1::Person#entry`: method to be able to have a reference to the update/creation input data entry.
+- new filter methods for `Eco::API::Common::People::Entries` and `Eco::API::Organization::People`
+ - `#filter_tags_any` & `#filter_tags_all`: those that have any or all the target tags
+ - `#policy_group_ids_any` & `#policy_groups_all`: those that have any or all the target policy groups
+
### Changed
- - updated dependency on `ecoportal-api` gem
- - **command line** some changes:
- - renamed `-refresh-presets` to `-refresh-abilities`
- - renamed `-recover-db` to `restore-db`
- - removed `Eco::API::Session::Tasks`: all the helpers have been moved and documented as part of `Eco::API::MicroCases` (some have been renamed)
- - as a consequence, removed method `Eco::API::Session#do`
- - `Eco::API::Common::People::PersonEntry#to_hash` has been removed
- - now you should use the more explicit `Eco::API::Common::People::PersonEntry#external_entry`
- - **internal refactor** of `Eco::API::UseCases::DefaultCases`:
- * made so they inherit from `Eco::API::Common::Loaders::UseCase` and cases are autoloaded during run-time
- - **internal refactor** of input entries processing:
- * `Eco::API::Common::People::PersonEntry` internal refactor
- - need to make the code clearer and make the `parsing` and `serializing` symmetrical
- - the `serializers` were expecting an `Ecoportal::API::V1::Person`, which was at a different to that of when the `parsers` kicked in.
- - now it has been introduced the possibility to launch the serializer in a different stage of the process
- - 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...
- * `Eco::Language::Models::ParserSerializer` offers `category` parameter so you can have multiple parsers and serializers per each parser/serializer (one per category).
- * `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
- - for `parser` valid **phases** are `:internal` (default) and `:final`
- - for `serializer` valid **phases** are `:person` (default), `:final` and `:internal`
- - 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
+- updated dependency on `ecoportal-api` gem
+- **command line** some changes:
+ - renamed `-refresh-presets` to `-refresh-abilities`
+ - renamed `-recover-db` to `restore-db`
+- removed `Eco::API::Session::Tasks`: all the helpers have been moved and documented as part of `Eco::API::MicroCases` (some have been renamed)
+ - as a consequence, removed method `Eco::API::Session#do`
+- `Eco::API::Common::People::PersonEntry#to_hash` has been removed
+ - now you should use the more explicit `Eco::API::Common::People::PersonEntry#external_entry`
+- **internal refactor** of `Eco::API::UseCases::DefaultCases`:
+ - made so they inherit from `Eco::API::Common::Loaders::UseCase` and cases are autoloaded during run-time
+- **internal refactor** of input entries processing:
+ - `Eco::API::Common::People::PersonEntry` internal refactor
+ - need to make the code clearer and make the `parsing` and `serializing` symmetrical
+ - the `serializers` were expecting an `Ecoportal::API::V1::Person`, which was at a different to that of when the `parsers` kicked in.
+ - now it has been introduced the possibility to launch the serializer in a different stage of the process
+ - 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...
+ - `Eco::Language::Models::ParserSerializer` offers `category` parameter so you can have multiple parsers and serializers per each parser/serializer (one per category).
+ - `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
+ - for `parser` valid **phases** are `:internal` (default) and `:final`
+ - for `serializer` valid **phases** are `:person` (default), `:final` and `:internal`
+ - 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
+
### Fixed
- - **command line**
- * `-search-soft` was being ignored in orgs with org config `session.config.people.strict_search = true`
- * Log connection information (**enabled**): it was not printing where the connection was being made
- * enabled chaining between usecases: they will be processed in the order they hold in the command line
- - Removed error double backtrace (now it should only show one)
- - `Eco::API::Common::People::EntryFactory#entries` was not using `encoding` parameter properly.
- - `Eco::API::Common::People::DefaultParsers::CSVParser` does at `strip` (trim) of the header names.
- - `Eco::API::Organization::PresetsFactory#merge` was including abilities that were not included in the custom presets
- - 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`
- - this new behavior will preserve account abilities that should be preserved; not targeted by the custom presets
- - some use cases where giving incorrect row number, fixed so they do:
- - `Eco::API::Common::People::EntryFactory#entries` adds `idx` key to each `entry`
- - `Eco::API::Common::People::PersonEntry`: serialization process has been normalized (previously there were missing fields)
- - this fix makes the `csv` with the complete set of fields that should be exported
- - `Ecoportal::API::Internal::Person#account_added` fixed typo
- - `Ecoportal::API::Session::Batch#get_people` should return `Array<Person>` invariably
+- **command line**
+ - `-search-soft` was being ignored in orgs with org config `session.config.people.strict_search = true`
+ - Log connection information (**enabled**): it was not printing where the connection was being made
+ - enabled chaining between usecases: they will be processed in the order they hold in the command line
+- Removed error double backtrace (now it should only show one)
+- `Eco::API::Common::People::EntryFactory#entries` was not using `encoding` parameter properly.
+- `Eco::API::Common::People::DefaultParsers::CSVParser` does at `strip` (trim) of the header names.
+- `Eco::API::Organization::PresetsFactory#merge` was including abilities that were not included in the custom presets
+ - 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`
+ - this new behavior will preserve account abilities that should be preserved; not targeted by the custom presets
+- some use cases where giving incorrect row number, fixed so they do:
+ - `Eco::API::Common::People::EntryFactory#entries` adds `idx` key to each `entry`
+- `Eco::API::Common::People::PersonEntry`: serialization process has been normalized (previously there were missing fields)
+ - this fix makes the `csv` with the complete set of fields that should be exported
+- `Ecoportal::API::Internal::Person#account_added` fixed typo
+- `Ecoportal::API::Session::Batch#get_people` should return `Array<Person>` invariably
+
## [1.5.1] - 2020-10-08
### Added
- - `presets_values.json`: added the new ability `tasks` (eP release `1.5.3`)
- - `Ecoportal::API::Internal::Person` patch helper methods:
- * `new?`: to know if this person is new in the people manager as a result of the current launch
- * `account_added?`: to know if this person did not have account but they will have it after the current launch
- - `Eco::API::Session#new_job`: to shorten code
- - `Eco::API::Common::DefaultPasers::PolicyGroupsParser`: made native, as it is a very common parser
- - `Eco::API::Common::DefaultPasers::FreemiumParser` to parse/serialise boolean
- - `Eco::API::Common::People::PersonParser`: added `freemium` as core attribute
- - `Eco::API::UserCases::DefaultCases::RecoverDBCase`: recovers also `freemium`
- - scoping **microcases** : to be able to centralize common code between use cases
- - at its early stage (currently not available for usage)
- - dependency on `ecoportal-api-oozes` gem
- - added basic support for **api** `v2`
- - you can use `session.api(:oozes)` to obtain an api `v2`
- - you can manage your keys directly on the apis configuration
- - added `external_key:`, `user_key:` and `apis.default_user_key`
- ```ruby
- ASSETS.config do |config|
- config.apis.default_user_key = 'your-user-key-here'
+- `presets_values.json`: added the new ability `tasks` (eP release `1.5.3`)
+- `Ecoportal::API::Internal::Person` patch helper methods:
+ - `new?`: to know if this person is new in the people manager as a result of the current launch
+ - `account_added?`: to know if this person did not have account but they will have it after the current launch
+- `Eco::API::Session#new_job`: to shorten code
+- `Eco::API::Common::DefaultPasers::PolicyGroupsParser`: made native, as it is a very common parser
+- `Eco::API::Common::DefaultPasers::FreemiumParser` to parse/serialise boolean
+- `Eco::API::Common::People::PersonParser`: added `freemium` as core attribute
+- `Eco::API::UserCases::DefaultCases::RecoverDBCase`: recovers also `freemium`
+- scoping **microcases** : to be able to centralize common code between use cases
+ - at its early stage (currently not available for usage)
+- dependency on `ecoportal-api-oozes` gem
+ - added basic support for **api** `v2`
+ - you can use `session.api(:oozes)` to obtain an api `v2`
+ - you can manage your keys directly on the apis configuration
+ - added `external_key:`, `user_key:` and `apis.default_user_key`
- config.add_api("org-environment", {
- host: 'pre.dev.ecoportal.com',
- key: 'an-internal-org-api-key',
- version: :internal,
- external_key: 'an-external-org-api-key',
- user_key: 'org-user-key-for-activity-stream',
- mode: :local
- })
- end
- ```
+```ruby
+ASSETS.config do |config|
+ config.apis.default_user_key = 'your-user-key-here'
+
+ config.add_api("org-environment", {
+ host: 'pre.dev.ecoportal.com',
+ key: 'an-internal-org-api-key',
+ version: :internal,
+ external_key: 'an-external-org-api-key',
+ user_key: 'org-user-key-for-activity-stream',
+ mode: :local
+ })
+end
+```
+
### Changed
- - internally: load `Eco::API::Common::Session` before `Eco::API::Common::People`
- - `Eco::API::Common::People::EntryFactory`: made child of `Eco::API::Common::Session::BaseSession`
- - refactored all the `api` connection creation for simplicity and to support multi api version
- - delegated `Eco::API::Session::Batch#get` to `Ecoportal::API::V1::People#get_all`
+- internally: load `Eco::API::Common::Session` before `Eco::API::Common::People`
+- `Eco::API::Common::People::EntryFactory`: made child of `Eco::API::Common::Session::BaseSession`
+- refactored all the `api` connection creation for simplicity and to support multi api version
+- delegated `Eco::API::Session::Batch#get` to `Ecoportal::API::V1::People#get_all`
+
### Fixed
- - correct `.gemspec` dependency version restrictions
+- correct `.gemspec` dependency version restrictions
+
## [1.5.0] - 2020-09-11
### Added
- - `Eco::Data::Files#file_empty?` to prevent error when checking encoding
+
+- `Eco::Data::Files#file_empty?` to prevent error when checking encoding
+
### Changed
- - change abilities to align with ecoPortal release `1.5.2`
+
+- change abilities to align with ecoPortal release `1.5.2`
+
### Fixed
- - `Eco::CSV#parse` and `Eco::CSV#read` should use the proper `encoding` when it's `bom`
- * apparently, this can only be achieved by passing an argument such as `rb:bom|utf-8`
- * best reference found: https://stackoverflow.com/a/60794851/4352306
+- `Eco::CSV#parse` and `Eco::CSV#read` should use the proper `encoding` when it's `bom`
+ - apparently, this can only be achieved by passing an argument such as `rb:bom|utf-8`
+ - best reference found: <https://stackoverflow.com/a/60794851/4352306>
+
## [1.4.2] - 2020-07-23
### Fixed
- - preserve backtrace on logging
+- preserve backtrace on logging
+
## [1.4.0] - 2020-07-14
### Changed
- - change abilities to align with ecoPortal release `1.5.0`
- - remove some patches on `ecoportal-api`
- - removed patch method `Ecoportal::API::V1::Person#sync`
+
+- change abilities to align with ecoPortal release `1.5.0`
+- remove some patches on `ecoportal-api`
+- removed patch method `Ecoportal::API::V1::Person#sync`
+
### Fixed
- - `Eco::CSV#parse` and `Eco::CSV#read` should use the proper `:encoding` when it's `bom`
+- `Eco::CSV#parse` and `Eco::CSV#read` should use the proper `:encoding` when it's `bom`
+
## [1.3.19] - 2020-07-23
### Fixed
- - preserve backtrace on logging
+- preserve backtrace on logging
+
## [1.3.18] - 2020-07-08
### Fixed
- - the `update` case was missing the code to use the `default_usergroup`
+- the `update` case was missing the code to use the `default_usergroup`
## [1.3.17] - 2020-07-06
### Changed
- - the `hris` case should not only include as `leavers` those that have account, but anyone that leaves
- * as we could have active people with no account
+
+- the `hris` case should not only include as `leavers` those that have account, but anyone that leaves
+ - as we could have active people with no account
+
### Fixed
- - `Eco::API::Session::Batch::Errors#errors`: fix error for empty `body` on response
+- `Eco::API::Session::Batch::Errors#errors`: fix error for empty `body` on response
+
## [1.3.16] - 2020-06-26
### Added
- - `Eco::API::Common::People::Entries`, `#entry` & `#find` should allow for `strict` search (added parameter)
+
+- `Eco::API::Common::People::Entries`, `#entry` & `#find` should allow for `strict` search (added parameter)
+
### Changed
- - upgraded `ecoportal-api` gem dependency to minimum version `0.5.7`
- - this includes the removal of some patches
- - some gems update
+
+- upgraded `ecoportal-api` gem dependency to minimum version `0.5.7`
+ - this includes the removal of some patches
+- some gems update
+
### Fixed
- - patched preferences (`kiosk` preferences should default to `nil`)
+- patched preferences (`kiosk` preferences should default to `nil`)
+
## [1.3.15] - 2020-06-11
### Added
- - default usecase to export to `csv` (`-detailed`) now includes `"Supervisor Name"` column
+
+- default usecase to export to `csv` (`-detailed`) now includes `"Supervisor Name"` column
+
### Changed
## [1.3.14] - 2020-06-10
### Added
- - `Eco::API::Common::People::SupervisorHelpers` now has its methods as class methods
+
+- `Eco::API::Common::People::SupervisorHelpers` now has its methods as class methods
+
### Changed
- - upgraded `ecoportal-api` gem dependency to minimum version `0.5.6`
+- upgraded `ecoportal-api` gem dependency to minimum version `0.5.6`
## [1.3.13] - 2020-05-29
### Fixed
- - `Eco::API::Organization::TagTree#tag?` to accept `nil` by returning `false`
- - `Eco::API::Common::People::DefaultParsers::DateParser` will parse to `Date` class
- * 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))
+
+- `Eco::API::Organization::TagTree#tag?` to accept `nil` by returning `false`
+- `Eco::API::Common::People::DefaultParsers::DateParser` will parse to `Date` class
+ - 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))
+
## [1.3.12] - 2020-05-19
### Changed
- - stop using `email` as `external_id` on `People#person` & `People#find`
- * this should result in more accurate searches when using `:strict` options
+- stop using `email` as `external_id` on `People#person` & `People#find`
+ - this should result in more accurate searches when using `:strict` options
+
## [1.3.11] - 2020-05-12
### Changed
- - remove popping up comments on `Eco::API::Organization::PolicyGroups#`
+- remove popping up comments on `Eco::API::Organization::PolicyGroups#`
+
## [1.3.10] - 2020-05-12
### Added
- - `Eco::API::Organization::PolicyGroups#to_name` added support for `Array` input
- - `config.people.default_usergroup`, when defined, will have effect on usecases: `update` (this case was missing the change)
- * on account creation, if the input file did not specify `policy_group_ids`
+- `Eco::API::Organization::PolicyGroups#to_name` added support for `Array` input
+- `config.people.default_usergroup`, when defined, will have effect on usecases: `update` (this case was missing the change)
+ - on account creation, if the input file did not specify `policy_group_ids`
+
### Fixed
- - `upsert`, `hris` and `create` usecases: fixed condition for use of default_usergroup
+- `upsert`, `hris` and `create` usecases: fixed condition for use of default_usergroup
+
## [1.3.9] - 2020-05-12
### Fixed
- `usecase` callback was not receiving `usecase` paramater
- * as a consequence `Batch::Job` created were missing the `usecase`
+ - as a consequence `Batch::Job` created were missing the `usecase`
## [1.3.8] - 2020-05-07
### Added
- this change log file
- `config.people.default_usergroup`, when defined, will have effect on usecases: `create`, `upsert` and `hris`
- * on account creation, if the input file did not specify `policy_group_ids`
+ - on account creation, if the input file did not specify `policy_group_ids`
### Changed
- `policy` callback to receive new parameter with the `Batch::Job` that it is currently processing/checking
-**Example of usage**
+**Example of usage__
```ruby
ASSETS.config.policies do |policies|
- policies.define("update-status") do |people, session, options, policy, job|
- if job.type == :create
- people.each do |person|
- person.details["status"] = "Active" if person.details
- end
+policies.define("update-status") do |people, session, options, policy, job|
+ if job.type == :create
+ people.each do |person|
+ person.details["status"] = "Active" if person.details
end
- if job.name == "leavers"
- person.details["status"] = "Inactive" if person.details
- end
end
+ if job.name == "leavers"
+ person.details["status"] = "Inactive" if person.details
+ end
+end
end
```
### Fixed