gbox-errors
Version:
Error handlers
48 lines (40 loc) • 1.27 kB
JavaScript
const boom = require('boom');
const validateData = require('./validateData');
module.exports = function (data) {
if (typeof validateData(data) === 'string') {
return boom.badRequest(validateData(data));
}
let codes = new Map([
[400, 'badRequest'],
[401, 'unauthorized'],
[402, 'paymentRequired'],
[403, 'forbidden'],
[404, 'notFound'],
[405, 'methodNotAllowed'],
[406, 'notAcceptable'],
[407, 'proxyAuthRequired'],
[408, 'clientTimeout'],
[409, 'conflict'],
[410, 'resourceGone'],
[411, 'lengthRequired'],
[412, 'preconditionFailed'],
[413, 'entityTooLarge'],
[414, 'uriTooLong'],
[415, 'unsupportedMediaType'],
[416, 'rangeNotSatisfiable'],
[417, 'expectationFailed'],
[422, 'badData'],
[423, 'locked'],
[424, 'failedDependency'],
[428, 'preconditionRequired'],
[429, 'preconditionRequired'],
[431, 'illegal']
]);
let [status, message, optional, err] = [data[0], data[1], data[2]];
err = boom[codes.get(status)](message);
err.code = "CUSTOM_ERROR";
if (optional) {
err.output.options = optional;
}
return err;
};