Skip to content

node-zendesk v4.0.0

Compare
Choose a tag to compare
@blakmatrix blakmatrix released this 13 Sep 04:34
· 190 commits to master since this release

Announcement: node-zendesk v4.0.0 Update 🚀

We're thrilled to announce a significant update to the Node-Zendesk package!

Notable Changes:

  • Dependencies Removed: We've removed the following dependencies - request, querystring, async, and nconf. As a result of removing nconf, command-line arguments will no longer work. However, these were buggy, so this change shouldn't affect the usage much. For configuration, you can now use dotenv. Refer to our examples for more clarity.

  • Promises & Async/Await: Callbacks have been ditched in favor of promise or async/await patterns. If you need guidance on updating your code, check out the example here.

  • Accessing Side Loads: To access side loads, the format is now client.<resource>.setSideLoad(). Ensure you use this before calling any API endpoints and after client instantiation. For instance: client.users.setSideLoad(["roles","organizations"]).

For comprehensive details, the changelog is your best friend!

Documentation: A significant documentation update is on the horizon. Keep an eye on this issue for more information.

A colossal shout out to @teebot and @cryptomail for making this release possible! 🎉

Happy Coding!

Changelog

Added:

Transporter Class Enhancements:

  • Introduced optional transportConfig to the Transporter class for HTTP client layer customization.
  • Defaulted to native fetch(requires node 18) as the transport while maintaining a smooth fallback mechanism.
  • Optional HTTP agnosticism -- New examples demonstrating integration**(optional)** with the request library (deprecated) and axios library.
  • A fix to prevent unwanted slashes in URLs due to undefined or empty segments.

Requests Class Updates:

  • Added a search method for querying specific ticket requests.
  • Enhanced list methods with optional parameters for sort_by and sort_order.

Organization Related Enhancements:

  • New methods: listByUser, count, countByUser, related, showMany, and bulkDelete.

Endpoint Enhancements:

  • Introduced the EndpointChecker class for evaluating endpoint capabilities.
  • Updated the URL assembly mechanism to include deep serialization of nested objects and improved assembleUrl function.
  • Added support for CBP in the assembleUrl function.

Various Class & Method Additions:

  • New methods for SLA policy reordering and filter definitions retrieval.
  • Enhanced OrganizationFields and OrganizationMemberships.
  • Extended the Locales class with new methods for Zendesk API.
  • Additions and updates across various classes like Brands, Automations, Attachments, Activity Stream, and more.
  • A new Transporter class, extracted from Client, now handles request logic.

Miscellaneous:

  • Removed forums and forumsubscriptions endpoints as they're no longer in service.
  • Several JSDoc additions and improvements across classes for better documentation.
  • Refactoring of request methods for clarity and granularity.

Fixes:

  • Fixed unwanted / being appended to URLs by filtering out undefined or empty string segments.
  • Addressed URL formatting issues in assembleUrl.
  • Resolved issue with CBP not being supported by default.
  • Fixed remoteUri -> endpointUri issue.
  • Remedied the issue with buggy exports.

Removed:

  • Removed forums and forumsubscriptions - endpoints no longer in service.
  • Removed unused API endpoint categories from the core.
  • Deleted commented-out and unused parts of the code in various places.

Changed:

  • Moved xo configuration into its separate file and excluded it from npm packaging.
  • Moved documentation: rename doc -> old and then doc to docs.
  • Replaced remoteUri with endpointUri in connection options. Users upgrading from v3.x to v4.x should update their configurations accordingly to avoid authorization errors. (#431)

Migration Procedure (if necessary):

  1. Check Dependencies: Ensure that your current dependencies are compatible with the new changes, especially given the shift to native fetch in the Transporter class.
  2. Update Custom Implementations: If you have custom implementations or overrides of the affected classes and methods, they might need adjustments to align with the updated methods.
  3. Remove Deprecated Endpoints: If you're utilizing forums or forumsubscriptions, these have been removed and will need either replacement or removal in your application.
  4. Test Extensively: Given the range of changes, it's crucial to test your application in a staging environment before deploying the updated package to production.