mirror of
https://github.com/ClaytonWWilson/CS307-Team24.git
synced 2025-12-16 02:08:47 +00:00
36 lines
1.1 KiB
JavaScript
36 lines
1.1 KiB
JavaScript
const isEmpty = (str) => {
|
|
if (str.trim() === '') return true;
|
|
else return false;
|
|
};
|
|
|
|
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;
|
|
}
|
|
|
|
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,
|
|
profileData
|
|
}
|
|
}; |