Change Log

All notable changes to this project will be documented in this file.

[1.3.4] - 2025-08-xx

Added

Changed

Fixed

[1.3.3] - 2025-08-29

Added

  • Better error handling

Fixed

  • Unused parameter/variable $includeArchivedNodes

[1.3.2] - 2025-08-19

Added

  • Mutation: allow parameters other than input.
  • Location Structure Draft models
  • Interface::LocationStructure::Nodes for LocationStructure and Draft::Structure
  • raw_response as optional query parameter (for debugging)
  • Logic::Input (out of consistency)
  • Fragments:
    • LocationDraft
    • LocationsError
  • Query to include draft list when fetching an RS.
  • Location Draft queries:
    • Draft#byId
    • Draft#create
    • Draft#delete
    • Draft#addCommands
    • Draft#publish
    • Draft#dropBadCommands
  • Error tracking througout the payload models of location mutations

Changed

  • Upgrade dependency (ecoportal-api gem).
  • Moved rescue on fragment definition to #define itself.
  • NodeInterface moved to Interface::LocationStructure::Node
  • Code: Shorten namespace referral.
  • Swap to Logic::BaseModel
  • Mutation to introduce :input required parameter by using parent class.

Fixed

  • QueryConnection: bad code.
  • conflictingIds should be array.

[1.3.1] - 2025-06-11

Changed

  • upgraded gem dependencies
  • Moded Ecoportal::API::GraphQL::Base::Model to
    • > Ecoportal::API::GraphQL::BaseModel
  • Added Interface::LocationNode
  • Added Interface::BasePage

Fixed

  • Fragments
    • Action fragment to use PageUnion (upgrade)
    • Memoize fragments.
    • Add what fragment failed in the error.

[1.2.1] - 2025-05-16

Changed

  • upgrade ecoportal-api gem
  • upgrade ecoportal-api-v2 gem

[1.1.1] - 2025-05-14

Added

  • MemberChanges helpers for Base::ContractorEntity
  • Custom Diff logic that can be used in GraphQL content:
    • Common::GraphQL::Model::Diffable::HashDiffNesting
    • Reused from HashDiffPatch (ecoportal-api-v2):
      1. It does not use patch_ver, but rather just id property alone.
      2. The operation property has been renamed to api_operation (to ensure no collisions). And the operation types are symbols, and renamed to: :delete, :update and :create. This can show up to be useful when, for instance, reusing the output of #as_update to generate actual input objects (i.e. #as_input) that feed some GraphQL query.
      3. The data property has been renamed to change_data.
      4. Hash keys are of type Symbol.
    • Common::GraphQL::Model::Diffable::DiffService. In a GraphQL context, this aims to be able to implement a function called #as_input (equivalent to #as_update):
      1. It uses the HashDiffNesting helpers.
      2. It has capability to ignore certain keys.
      3. It can calculate diff excluding nested models (i.e. those that are root? and, therefore, not part of the changed target model). This functionality is an optimization to cascaded_callbacks throughout the nested models.

Changed

  • Common::GraphQL::Model::Diffable by using Diffable::DiffService (with cascaded_callbacks implementation).
    • #as_update
    • #dirty?
  • upgraded ecoportal-api gem
  • updraded ecoportal-api-v2 gem

[0.4.7] - 2025-04-02

Added

  • page.id to Action linked resources.

[0.4.6] - 2025-04-02

Added

  • Ecoportal::API::GraphQL::Logic::QueryConnection
    • Require default_connection_block to child classes
    • This aims to not having have client code having to define the block for #each

Changed

  • upgraded ecoportal-api gem
  • upgraded ecoportal-api-v2 gem

[0.4.5] - 2025-03-14

Added

  • Query actionCategories
  • Mutation create Action

Changed

  • Action model to have locations (RS upgrade)

[0.4.4] - 2025-02-23

Changed

  • Upgraded ecoportal-api gem (maintanance)
  • Upgraded ecoportal-api-v2 gem (to provision root! class method)
  • Defined some models that hand on their own as root!
  • Refactored Base::Model by moving its loggic to Common::GraphQL

Fixed

  • Ecoportal::API::Common::GraphQL::HashHelpers
    • Truly make the iterator generic

[0.4.3] - 2024-11-21

Changed

  • upgrade gems
    • ecoportal-api
    • ecoportal-api-v2
  • Ecoportal::API::Common::GraphQL::HttpClient.new ceased to default version to v1 (now it defaults to nil)

[0.4.2] - 2024-10-01

Changed

  • upgrade gems
    • ecoportal-api-v2
  • add explicit dependency onto ecoportal-api gem (client)

[0.4.1] - 2024-08-09

Added

  • ContractorEntity added field externalId

Changed

  • gem upgrade ecoportal-api-v2

[0.4.0] - 2024-08-01

Changed

  • require ruby 3

[0.3.18] - 2024-05-16

Fixed

  • Ecoportal::API::GraphQL::Payload::LocationStructure::CommandExecutionResult
    • Error is nullable

[0.3.17] - 2024-05-14

Fixed

  • field_name should add up to the path

[0.3.16] - 2024-04-29

Added

  • Exposed graphql ContractorEntity destroy

Fixed

  • incorrect loading

Changed

  • Input for ContractorEntity create moved as update (as it wasn't correct)

[0.3.15] - 2024-04-13

Added

  • Ecoportal::API::GraphQL::Logic::BaseQuery
    • ::base_path class instance var.
  • query to retrieve currentOrganization.classifications

Fixed

  • upgraded ecoportal-api-v2 gem

[0.3.14] - 2024-03-13

Added

  • some benchmarking on
    1. core graphql base query
  • #parent_id to location node model

Changed

  • upgraded ecoportal-v2-api gem

Fixed

  • Optimized treeify and locations structure class

[0.3.13] - 2024-02-03

Changed

  • upgrade ecoportal-api-v2

[0.3.12] - 2024-01-27

Added

  • Exposed graphql Action update and get a single action

[0.3.11] - 2023-09-19

Added

  • Exposed graphql ContractorEntity create and update

[0.3.10] - 2023-08-12

Fixed

  • Ecopotal::API::GraphQL::Query::LocationStructure
    • query in basic_block missed an explicitly declared parameter.

[0.3.9] - 2023-08-03

Added

  • Ecoportal::API::GraphQL::Logic::BaseQuery
    • Added support for default values.

[0.3.8] - 2023-07-18

Added

  • Integration for archiving actions.
  • LocationNodeInterface -> support for classifications
  • Treeify to dump more data per node (classifications)

Fixed

  • Silenced waning messages when redefining Fragments

[0.3.7] - 2023-05-23

Fixed

  • Ecoportal::API::Common::GraphQL::Client adjusted read_timeout and write_timeout to 90 seconds.

[0.3.6] - 2023-04-17

Changed

  • Softened max version of gem dependencies

Fixed

  • Ecoportal::API::GraphQL::Fragment#define was not removing previous constants
    • Changed check method to be ::const_defined?

[0.3.5] - 2023-04-03

Fixed

  • Ecoportal::API::GraphQL::Helpers::LocationsTree#treeify
    • Make it real id-case-insensitive (parents in lower case were being missed due to this)

[0.3.4] - 2023-04-03

Added

  • Ecoportal::API::Common::GraphQL::AuthService
    • #session_token added token auto-renew functionality (when token expires in less than 90 minutes)
    • #session_token_renewed

Fixed

  • Enabled to specify host (other than live.ecoportal.com) by the user

[0.3.3] - 2023-04-02

Fixed

  • Ecoportal::API::GraphQL::Base::LocationNode added attribute archivedToken

[0.3.2] - 2023-04-02

Changed

  • Ecoportal::API::GraphQL::Helpers::LocationsTree#treeify added support for archived_token

[0.3.1] - 2023-03-09

Changed

  • Upgraded core gem dependency ecoportal-api-v2

[0.2.3] - 2023-02-27

Fixed

  • Typo in tests LocationsStructures... should read locationStructures

[0.2.2] - 2023-02-24

Fixed

  • Build gem correctly

[0.2.1] - 2023-02-24

Changed

  • Migrate from TagTrees to reporting structures (breaking change)

Added

  • Basics for reporting structure mutations

[0.1.11] - 2022-11-29

Added

  • Ecoportal::API::GraphQL::Base::Mutation
  • Added createContractorEntity

Changed

  • upgraded graphlient gem dependency (support for framents)
    • removed patch in this gem
  • Slight internal refactor of Ecoportal::API::GraphQL::Base::Query
  • Upgraded ecoportal-api-v2 gem dependency

[0.1.10] - 2022-09-29

Changed

  • upgraded ecoportal-api-v2 gem dependency

Fixed

  • Remove debugging message

[0.1.9] - 2022-09-26

Added

  • Ecoportal::API::GraphQL::Query::TagTree

Changed

  • upgraded ecoportal-api-v2 gem dependency
  • added Ecoportal::API::Common::GraphQL::QueryIntegration
    • restructured Ecoportal::API::GraphQL::Model::Organization class
  • Patch on Graphlient::Query for fragments support (pull request: https://github.com/ashkan18/graphlient/pull/94)

[0.1.8] - 2022-09-23

Added

  • currentOrganization.tagTrees query

Changed

  • upgraded ecoportal-api-v2 gem dependency
  • Restructured the Query inheritance chain to make things simpler

[0.1.6] - 2022-09-19

Fixed

  • Call to private method remove_const in Ecoportal::API::GraphQL::Fragment#define

[0.1.5] - 2022-09-19

Added

  • Patch GraphQL::Query#append_node so we can use Fragments in blocks using ___ as start of the constant, and __ for namespace separator
  • Ecoportal::API::GraphQL::Fragment#define provided that client scripts can create their own fragments in their own namespace
    • Exposed Ecoportal::API::GraphQL#fragments
    • It will always (re)define in the Fragment root namespace

[0.1.4] - 2022-09-16

Fixed

  • Able to inject connection block to each
  • Error handling delegated to parent class (QueryConnection)
  • Retrieve id on elements of Array

[0.1.3] - 2022-09-15

Fixed

  • Fixed circular reference to org_id in Ecoportal::API::Common::GraphQL::Client

[0.1.2] - 2022-09-15

Changed

  • Ecoportal::API::GraphQL addded email and pass parameters on initialization
    • This allows for integration in some client lib

[0.1.0] - 2022-09-15

Added

  • First commit with some basic structure