UNPKG

rtm-api

Version:

Remember the Milk API Interface

114 lines (98 loc) 2.66 kB
'use strict'; const RTMResponse = require('./response.js'); /** * ### RTM Error Response * * This Class represents a failed request to the RTM API Server: the * RTM API Server returned a response with a status of 'fail'. This * Class will include the error code and error message from the * response. * * `RTMError` extends {@link RTMResponse} * @class * @alias RTMError */ class RTMError extends RTMResponse{ /** * Create a new RTM Error Response * @param {number} code Error Code * @param {string} msg Error Message * @constructor */ constructor(code, msg) { super(RTMResponse.STATUS_FAIL); this._code = parseInt(code); this._msg = msg; } /** * The RTM Error Code * @type {number} */ get code() { return this._code; } /** * The RTM Error Message * @type {string} */ get msg() { return this._msg; } /** * Get a String representation of the Error * @returns {string} */ toString() { return super.toString() + " ERROR " + this._code + ": " + this._msg; } } // === CUSTOM ERRORS ==== // /** * Create a new `RTMError` that represents a network error. * * Error Code: `-1` * @returns {RTMError} */ RTMError.networkError = function() { return new RTMError(-1, "Network Error: Could not make request to RTM API Server"); }; /** * Create a new `RTMError` that represents an API response error. * * Error Code: `-2` * @returns {RTMError} */ RTMError.responseError = function() { return new RTMError(-2, "Response Error: Could not parse the response from the RTM API Server"); }; /** * Create a new `RTMError` that represents an index error (ie, task index is out * of range). * * Error Code: `-3` * @returns {RTMError} */ RTMError.referenceError = function() { return new RTMError(-3, "Reference Error: Could not find item by reference index number or name"); }; /** * Create a new `RTMError` that represents an RTM API Rate Limit (the RTM API * returned a HTTP Status code of `503`). * * Error Code: `-4` * @returns {RTMError} */ RTMError.rateLimitError = function() { return new RTMError(-4, "Rate Limit Error: Your Account has temporarily reached the RTM API Rate Limit. Please wait a minute and try the request again later."); }; /** * Create a new `RTMError` that represents an RTM API Server Error (the RTM API * returned a HTTP Status code of `5xx` - excluding `503`). * * Error Code: `-5` * @returns {RTMError} */ RTMError.serverError = function() { return new RTMError(-5, "RTM API Server Error: The RTM API Server is not responding. Please try the request again later."); }; module.exports = RTMError;