2013-10-22 09:29:57 +02:00
|
|
|
var util = require('util')
|
|
|
|
, utils = require('./utils')
|
2013-06-01 00:57:28 +02:00
|
|
|
|
|
|
|
function parse_error_params(params, status, msg) {
|
|
|
|
if (typeof(params) === 'string') {
|
|
|
|
return {
|
|
|
|
msg: params,
|
|
|
|
status: status,
|
|
|
|
};
|
|
|
|
} else if (typeof(params) === 'number') {
|
|
|
|
return {
|
|
|
|
msg: msg,
|
|
|
|
status: params,
|
|
|
|
};
|
2013-10-22 09:29:57 +02:00
|
|
|
} else if (utils.is_object(params)) {
|
2013-06-01 00:57:28 +02:00
|
|
|
if (params.msg == null) params.msg = msg;
|
|
|
|
if (params.status == null) params.status = status;
|
|
|
|
return params;
|
|
|
|
} else {
|
|
|
|
return {
|
|
|
|
msg: msg,
|
|
|
|
status: status,
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Errors caused by malfunctioned code
|
|
|
|
*/
|
|
|
|
var AppError = function(params, constr) {
|
|
|
|
Error.captureStackTrace(this, constr || this);
|
|
|
|
params = parse_error_params(params, 500, 'Internal server error');
|
|
|
|
this.msg = params.msg;
|
|
|
|
this.status = params.status;
|
|
|
|
};
|
|
|
|
util.inherits(AppError, Error);
|
|
|
|
AppError.prototype.name = 'Application Error';
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Errors caused by wrong request
|
|
|
|
*/
|
|
|
|
var UserError = function(params, constr) {
|
|
|
|
params = parse_error_params(params, 404, 'The requested resource was not found');
|
|
|
|
this.msg = params.msg;
|
|
|
|
this.status = params.status;
|
|
|
|
};
|
|
|
|
util.inherits(UserError, Error);
|
|
|
|
UserError.prototype.name = 'User Error';
|
|
|
|
|
2013-06-20 15:07:34 +02:00
|
|
|
/*
|
|
|
|
* Mimic filesystem errors
|
|
|
|
*/
|
|
|
|
var FSError = function(code) {
|
|
|
|
this.code = code;
|
|
|
|
};
|
|
|
|
util.inherits(UserError, Error);
|
|
|
|
UserError.prototype.name = 'FS Error';
|
|
|
|
|
2013-06-01 00:57:28 +02:00
|
|
|
module.exports.AppError = AppError;
|
|
|
|
module.exports.UserError = UserError;
|
2013-06-20 15:07:34 +02:00
|
|
|
module.exports.FSError = FSError;
|
2013-06-01 00:57:28 +02:00
|
|
|
|