[60372] Return better error details from API#236
Merged
mrashed-dev merged 5 commits intomainfrom Jun 4, 2021
Merged
Conversation
Previously, we would only return generally the error message. Now we return a JSON with all the error details returned from the API.
|
This pull request has been linked to Clubhouse Story #60372: Node SDK - 'type' missing from errors (Dealer Inspire). |
AaronDDM
approved these changes
Jun 1, 2021
To prevent incompatibility and keep the flexibility we move the type into a class and make it an instance of Error
Error code mapping is based on the API Errors page in the Nylas developer guide. Also allows us to keep the error object as close to the response payload.
AaronDDM
reviewed
Jun 4, 2021
For the sake of keeping things backwards compatible, we should keep the toString() the same. The point of this object should be to extend functionality and not break anything.
AaronDDM
approved these changes
Jun 4, 2021
Merged
mrashed-dev
added a commit
that referenced
this pull request
Jun 9, 2021
New `nylas` v5.5.0 release bringing in the following new features: * Replaced deprecated `request` library with `node-fetch` (#234) * Add custom error class `NylasApiError` to add more error details returned from the API (#236) * Add support for read only fields (#237) * Enabled Nylas API v2.2 support (#237) The new release also fixes the following: * Fix bug where saving a `draft` object with an undefined `filesIds` would throw an error (#230) * Fix typings for classes that extend `RestfulModelCollection` or `RestfulModelInstance` (#238)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Previously, we would only return generally the error message. Now we return a custom error object (that extends
Error) that properly stores all of the error values we get back from the API and sets them in a way that is more native than just returning a string.Usage
The new
NylasApiErrorclass extends theErrorclass and both sets the build-in properties of Error and extends the error class to provide more values if needed. The following properties are made availalbe by the class:name(string): The name of the error, derived from the API Errors page (e.g.Bad Request)message(string): The error message returned from the API (e.g.No recipients specified)statusCode(number): The status code returned from the API call (e.g.400)type(string): The type of error returned from the API (e.g.invalid_request_error)missingFields(string[]): The array of fields that were missing in the call, if applicable (e.g.["name", "email"])serverError(string): The error returned by the provider (e.g.interaction_required)stack(string): The stacktrace from JavaScriptLicense
I confirm that this contribution is made under the terms of the MIT license and that I have the authority necessary to make this contribution on behalf of its copyright owner.