node-zendesk v4.0.0
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
, andnconf
. As a result of removingnconf
, 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 forsort_by
andsort_order
.
Organization Related Enhancements:
- New methods:
listByUser
,count
,countByUser
,related
,showMany
, andbulkDelete
.
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
andOrganizationMemberships
. - 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 fromClient
, now handles request logic.
Miscellaneous:
- Removed
forums
andforumsubscriptions
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
andforumsubscriptions
- 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 thendoc
todocs
. - Replaced
remoteUri
withendpointUri
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):
- Check Dependencies: Ensure that your current dependencies are compatible with the new changes, especially given the shift to native fetch in the
Transporter
class. - 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.
- Remove Deprecated Endpoints: If you're utilizing
forums
orforumsubscriptions
, these have been removed and will need either replacement or removal in your application. - 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.