2022-06-05 22:58:18 +10:00
|
|
|
let Errors = {
|
|
|
|
unknown: ["Something went wrong.", 500],
|
|
|
|
unauthorized: ["You don't have permission to do that.", 401],
|
|
|
|
notAuthenticated: ["You have to login to do that", 401],
|
|
|
|
invalidUserOrPassword: ["Invalid username or password.", 401],
|
|
|
|
invalidTotp: ["Invalid 2FA code.", 401],
|
|
|
|
invalidCredentials: ["Invalid username or password.", 401],
|
|
|
|
rateLimit: [
|
|
|
|
"You are being rate-limited. Please try again in a few minutes.",
|
|
|
|
429
|
|
|
|
],
|
|
|
|
communicationsUserNotFound: ["This user does not exist.", 400],
|
|
|
|
communicationsUserNotOptedIn: [
|
2022-07-29 19:04:37 +10:00
|
|
|
"This user does not have chatting enabled.",
|
2022-06-05 22:58:18 +10:00
|
|
|
400
|
|
|
|
],
|
|
|
|
friendAlreadyFriends: ["You are already friends with this user.", 400],
|
|
|
|
friendNotFound: ["The friend instance couldn't be found.", 400],
|
|
|
|
chatNotFoundOrNotAdmin: [
|
|
|
|
"The chat instance couldn't be found, or you are not an administrator of it.",
|
|
|
|
400
|
|
|
|
],
|
|
|
|
experimentsOptIn: ["You are not opted into this experiment.", 401],
|
|
|
|
attachmentNotFound: [
|
|
|
|
"The user content you are trying to access does not exist, or has been deleted.",
|
|
|
|
400
|
|
|
|
],
|
|
|
|
invalidFileType: [
|
|
|
|
"The file you are trying to upload is not a valid file type.",
|
|
|
|
400
|
|
|
|
],
|
2022-08-14 22:06:56 +10:00
|
|
|
fileTooLarge: [
|
|
|
|
"The file you are trying to upload is too large. Maximum 50MB.",
|
|
|
|
400
|
|
|
|
],
|
2022-06-05 22:58:18 +10:00
|
|
|
invalidPassword: [
|
|
|
|
"Your password must be at least 8 characters in length.",
|
|
|
|
400
|
2022-07-29 19:04:37 +10:00
|
|
|
],
|
|
|
|
registrationsDisabled: [
|
|
|
|
"Registrations are currently disabled on this instance. Please try again later.",
|
|
|
|
400
|
2022-07-29 19:20:19 +10:00
|
|
|
],
|
2022-07-30 18:41:18 +10:00
|
|
|
banned: ["You are banned from this instance.", 400],
|
2022-07-31 14:56:43 +10:00
|
|
|
leavingDirectChat: ["You cannot leave a direct message.", 400],
|
|
|
|
emailVerificationRequired: [
|
|
|
|
"You must verify your email before you can do this action.",
|
|
|
|
401
|
|
|
|
],
|
|
|
|
mailFail: ["There was an error sending the verification email.", 400],
|
2022-08-03 19:11:19 +10:00
|
|
|
invalidToken: ["The token you provided is invalid.", 400],
|
|
|
|
cannotFriendYourself: ["You cannot friend yourself.", 400]
|
2022-06-05 22:58:18 +10:00
|
|
|
}
|
|
|
|
|
|
|
|
function processErrors(errorName) {
|
|
|
|
let arr = Errors[errorName]
|
|
|
|
|
2022-07-29 19:04:37 +10:00
|
|
|
let temp = {}
|
2022-06-05 22:58:18 +10:00
|
|
|
temp.name = errorName
|
|
|
|
temp.message = arr[0]
|
|
|
|
temp.status = arr[1]
|
|
|
|
|
|
|
|
return {
|
|
|
|
name: errorName,
|
|
|
|
message: arr[0],
|
|
|
|
status: arr[1]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
let ProcessedErrors = {}
|
|
|
|
|
|
|
|
for (let errorName in Errors) {
|
|
|
|
ProcessedErrors[errorName] = processErrors(errorName)
|
|
|
|
}
|
|
|
|
|
|
|
|
ProcessedErrors.VALIDATION_ERROR = "VALIDATION_ERROR"
|
|
|
|
|
|
|
|
ProcessedErrors.invalidParameter = function (param, message) {
|
|
|
|
let punctuatedMessage = ""
|
|
|
|
if (message) {
|
|
|
|
punctuatedMessage = ": " + message
|
|
|
|
}
|
|
|
|
|
|
|
|
return {
|
|
|
|
name: "invalidParameter",
|
|
|
|
message: `${param} is invalid${punctuatedMessage}`,
|
|
|
|
status: 400,
|
|
|
|
parameter: param
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-11-03 18:30:37 +11:00
|
|
|
ProcessedErrors.customMessage = function (param) {
|
|
|
|
return {
|
|
|
|
name: "customMessage",
|
|
|
|
message: `${param}`,
|
|
|
|
status: 400,
|
|
|
|
parameter: param
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-06-05 22:58:18 +10:00
|
|
|
ProcessedErrors.sequelizeValidation = (sequelize, obj) => {
|
|
|
|
return new sequelize.ValidationError(obj.error, [
|
|
|
|
new sequelize.ValidationErrorItem(
|
|
|
|
obj.error,
|
|
|
|
"Validation error",
|
|
|
|
obj.path,
|
|
|
|
obj.value
|
|
|
|
)
|
|
|
|
])
|
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = ProcessedErrors
|