Made edit profile data validation more robust.

This commit is contained in:
2019-09-29 21:01:06 -04:00
parent 15f976398a
commit d05f87c7a7
3 changed files with 25 additions and 13 deletions

View File

@@ -3,15 +3,34 @@ const isEmpty = (str) => {
else return false;
};
exports.validateUpdateProfileInfo = (profileData) => {
let errors = {}
const isEmail = (str) => {
const emailRegEx = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
if (str.match(emailRegEx)) return true;
else return false;
}
if (isEmpty(profileData.email)) {
exports.validateUpdateProfileInfo = (data) => {
let errors = {};
let profileData = {};
// ?: Should users be able to change their handles and emails?
// Only adds the key to the DB if the values are not empty
if (!isEmpty(data.firstName)) profileData.firstName = data.firstName.trim();
if (!isEmpty(data.lastName)) profileData.lastName = data.lastName.trim();
if (!isEmpty(data.bio)) profileData.bio = data.bio.trim();
if (isEmpty(data.email)) {
errors.email = "Must not be empty.";
} else if (!isEmail(data.email)) {
errors.email = "Must be a valid email."
} else {
profileData.email = data.email;
}
return {
errors,
valid: Object.keys(errors).length === 0 ? true : false
valid: Object.keys(errors).length === 0 ? true : false,
profileData
}
};