mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 00:40:14 +01:00
* fix: #546 issue with closing registration * refactor: change casing of controller files for consistency * fix: ensure registrationEnabled is sending a boolean value * refactor: modifications to openId code
33 lines
1.2 KiB
JavaScript
33 lines
1.2 KiB
JavaScript
//handle duplicates
|
|
const handleDuplicateKeyError = (err, res) => {
|
|
const field = Object.keys(err.keyValue);
|
|
const code = 409;
|
|
const error = `An document with that ${field} already exists.`;
|
|
console.log('congrats you hit the duped keys error');
|
|
res.status(code).send({ messages: error, fields: field });
|
|
};
|
|
|
|
//handle validation errors
|
|
const handleValidationError = (err, res) => {
|
|
console.log('congrats you hit the validation middleware');
|
|
let errors = Object.values(err.errors).map((el) => el.message);
|
|
let fields = Object.values(err.errors).map((el) => el.path);
|
|
let code = 400;
|
|
if (errors.length > 1) {
|
|
const formattedErrors = errors.join(' ');
|
|
res.status(code).send({ messages: formattedErrors, fields: fields });
|
|
} else {
|
|
res.status(code).send({ messages: errors, fields: fields });
|
|
}
|
|
};
|
|
|
|
// eslint-disable-next-line no-unused-vars
|
|
module.exports = (err, req, res, next) => {
|
|
try {
|
|
console.log('congrats you hit the error middleware');
|
|
if (err.name === 'ValidationError') return (err = handleValidationError(err, res));
|
|
if (err.code && err.code == 11000) return (err = handleDuplicateKeyError(err, res));
|
|
} catch (err) {
|
|
res.status(500).send('An unknown error occurred.');
|
|
}
|
|
};
|