Defined in: addon/adapters/errors.js:11
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:
app/adapters/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 Ember from 'ember'; import MaintenanceError from '../adapters/maintenance-error'; export default Ember.Route.extend({ actions: { error(error, transition) { if (error instanceof MaintenanceError) { this.transitionTo('under-maintenance'); return; } // ...other error handling logic } } });
© 2017 Yehuda Katz, Tom Dale and Ember.js contributors
Licensed under the MIT License.
http://emberjs.com/api/data/classes/DS.AdapterError.html