Class DS.AdapterError
Defined in: | addon/-private/adapters/errors.js:10 |
---|---|
Module: | ember-data |
A DS.AdapterError
is used by an adapter to signal that an error occurred during a request to an external API. It indicates a generic error, and subclasses are used to indicate specific error states. The following subclasses are provided:
DS.InvalidError
DS.TimeoutError
DS.AbortError
DS.UnauthorizedError
DS.ForbiddenError
DS.NotFoundError
DS.ConflictError
DS.ServerError
To create a custom error to signal a specific error state in communicating with an external API, extend the DS.AdapterError
. For example if the external API exclusively used HTTP 503 Service Unavailable
to indicate it was closed for maintenance:
error.js
import DS from 'ember-data'; export default DS.AdapterError.extend({ message: "Down for maintenance." });
This error would then be returned by an adapter's handleResponse
method:
app/adapters/application.js
import DS from 'ember-data'; import MaintenanceError from './maintenance-error'; export default DS.JSONAPIAdapter.extend({ handleResponse(status) { if (503 === status) { return new MaintenanceError(); } return this._super(...arguments); } });
And can then be detected in an application and used to send the user to an under-maintenance
route:
app/routes/application.js
import Route from '@ember/routing/route'; import MaintenanceError from '../adapters/maintenance-error'; export default Route.extend({ actions: { error(error, transition) { if (error instanceof MaintenanceError) { this.transitionTo('under-maintenance'); return; } // ...other error handling logic } } });
© 2020 Yehuda Katz, Tom Dale and Ember.js contributors
Licensed under the MIT License.
https://api.emberjs.com/ember-data/2.18/classes/DS.AdapterError