Ghost/ghost/errors/lib/errors.js
Vikas Potluri 8ed65ff1e5 Add PasswordResetRequiredError (#68)
refs TryGhost/Ghost#11835

- this error was added after this package was created. Once this gets released, we will be able to remove the errors file in the core 🥳
2020-05-26 17:09:44 +01:00

96 lines
3.0 KiB
JavaScript

const merge = require('lodash/merge'),
each = require('lodash/each'),
util = require('util'),
errors = require('ghost-ignition').errors;
function GhostError(options) {
options = options || {};
this.value = options.value;
errors.IgnitionError.call(this, options);
}
const ghostErrors = {
DataExportError: function DataExportError(options) {
GhostError.call(this, merge({
statusCode: 500,
errorType: 'DataExportError'
}, options));
},
DataImportError: function DataImportError(options) {
GhostError.call(this, merge({
statusCode: 500,
errorType: 'DataImportError'
}, options));
},
DatabaseVersionError: function DatabaseVersionError(options) {
GhostError.call(this, merge({
hideStack: true,
statusCode: 500,
errorType: 'DatabaseVersionError'
}, options));
},
EmailError: function EmailError(options) {
GhostError.call(this, merge({
statusCode: 500,
errorType: 'EmailError'
}, options));
},
ThemeValidationError: function ThemeValidationError(options) {
GhostError.call(this, merge({
statusCode: 422,
errorType: 'ThemeValidationError',
errorDetails: {}
}, options));
},
DisabledFeatureError: function DisabledFeatureError(options) {
GhostError.call(this, merge({
statusCode: 409,
errorType: 'DisabledFeatureError'
}, options));
},
UpdateCollisionError: function UpdateCollisionError(options) {
GhostError.call(this, merge({
statusCode: 409,
errorType: 'UpdateCollisionError'
}, options));
},
HostLimitError: function HostLimitError(options) {
GhostError.call(this, merge({
errorType: 'HostLimitError',
hideStack: true,
statusCode: 403
}, options));
},
HelperWarning: function HelperWarning(options) {
GhostError.call(this, merge({
errorType: 'HelperWarning',
hideStack: true
}, options));
},
PasswordResetRequiredError: function PasswordResetRequiredError(options) {
GhostError.call(this, merge({
errorType: 'PasswordResetRequiredError',
statusCode: 401,
message: 'For security, you need to create a new password. An email has been sent to you with instructions!'
}, options));
}
};
util.inherits(GhostError, errors.IgnitionError);
each(ghostErrors, function (error) {
util.inherits(error, GhostError);
});
// we need to inherit all general errors from GhostError, otherwise we have to check instanceof IgnitionError
each(errors, function (error) {
if (error.name === 'IgnitionError' || typeof error === 'object') {
return;
}
util.inherits(error, GhostError);
});
module.exports = merge(ghostErrors, errors);
module.exports.GhostError = GhostError;