| "use strict"; |
| |
| function PouchError(opts) { |
| this.status = opts.status; |
| this.name = opts.error; |
| this.message = opts.reason; |
| this.error = true; |
| } |
| |
| PouchError.prototype__proto__ = Error.prototype; |
| |
| PouchError.prototype.toString = function () { |
| return JSON.stringify({ |
| status: this.status, |
| name: this.name, |
| message: this.message |
| }); |
| }; |
| |
| exports.UNAUTHORIZED = new PouchError({ |
| status: 401, |
| error: 'unauthorized', |
| reason: "Name or password is incorrect." |
| }); |
| exports.MISSING_BULK_DOCS = new PouchError({ |
| status: 400, |
| error: 'bad_request', |
| reason: "Missing JSON list of 'docs'" |
| }); |
| exports.MISSING_DOC = new PouchError({ |
| status: 404, |
| error: 'not_found', |
| reason: 'missing' |
| }); |
| exports.REV_CONFLICT = new PouchError({ |
| status: 409, |
| error: 'conflict', |
| reason: 'Document update conflict' |
| }); |
| exports.INVALID_ID = new PouchError({ |
| status: 400, |
| error: 'invalid_id', |
| reason: '_id field must contain a string' |
| }); |
| exports.MISSING_ID = new PouchError({ |
| status: 412, |
| error: 'missing_id', |
| reason: '_id is required for puts' |
| }); |
| exports.RESERVED_ID = new PouchError({ |
| status: 400, |
| error: 'bad_request', |
| reason: 'Only reserved document ids may start with underscore.' |
| }); |
| exports.NOT_OPEN = new PouchError({ |
| status: 412, |
| error: 'precondition_failed', |
| reason: 'Database not open' |
| }); |
| exports.UNKNOWN_ERROR = new PouchError({ |
| status: 500, |
| error: 'unknown_error', |
| reason: 'Database encountered an unknown error' |
| }); |
| exports.BAD_ARG = new PouchError({ |
| status: 500, |
| error: 'badarg', |
| reason: 'Some query argument is invalid' |
| }); |
| exports.INVALID_REQUEST = new PouchError({ |
| status: 400, |
| error: 'invalid_request', |
| reason: 'Request was invalid' |
| }); |
| exports.QUERY_PARSE_ERROR = new PouchError({ |
| status: 400, |
| error: 'query_parse_error', |
| reason: 'Some query parameter is invalid' |
| }); |
| exports.DOC_VALIDATION = new PouchError({ |
| status: 500, |
| error: 'doc_validation', |
| reason: 'Bad special document member' |
| }); |
| exports.BAD_REQUEST = new PouchError({ |
| status: 400, |
| error: 'bad_request', |
| reason: 'Something wrong with the request' |
| }); |
| exports.NOT_AN_OBJECT = new PouchError({ |
| status: 400, |
| error: 'bad_request', |
| reason: 'Document must be a JSON object' |
| }); |
| exports.DB_MISSING = new PouchError({ |
| status: 404, |
| error: 'not_found', |
| reason: 'Database not found' |
| }); |
| exports.IDB_ERROR = new PouchError({ |
| status: 500, |
| error: 'indexed_db_went_bad', |
| reason: 'unknown' |
| }); |
| exports.WSQ_ERROR = new PouchError({ |
| status: 500, |
| error: 'web_sql_went_bad', |
| reason: 'unknown' |
| }); |
| exports.LDB_ERROR = new PouchError({ |
| status: 500, |
| error: 'levelDB_went_went_bad', |
| reason: 'unknown' |
| }); |
| exports.FORBIDDEN = new PouchError({ |
| status: 403, |
| error: 'forbidden', |
| reason: 'Forbidden by design doc validate_doc_update function' |
| }); |
| exports.error = function (error, reason, name) { |
| function CustomPouchError(msg) { |
| this.message = reason; |
| if (name) { |
| this.name = name; |
| } |
| } |
| CustomPouchError.prototype = error; |
| return new CustomPouchError(reason); |
| }; |