modarb-be / src /modules /common /User /validation /user.baseValidation.ts
youssefkatry907
User registeration & login
a6fbb8d
raw
history blame
5.32 kB
import joi from 'joi';
export class userBaseValidation {
static createValidation = {
body: joi.object().required().keys({
name: joi.string().empty().required().messages({
"string.base": "please enter a valid name",
"any.required": "name is required",
"string.empty": "name can not be empty",
}),
email: joi.string().required().email({ minDomainSegments: 2, tlds: { allow: ['com', 'net', 'org', 'eg', 'io'] } }).empty().messages({
"string.email": "please enter a valid email",
"any.required": "email must be entered",
"string.empty": "email can not be empty",
}),
password: joi.string().empty().min(8).required().messages({
"string.base": "please enter a valid password",
"any.required": "password must be entered",
"string.empty": "password cannot be empty",
"string.min": "password must be at least 8 characters"
}),
confirmPassword: joi.string().empty().min(8).required().messages({
"string.base": "please enter a valid password",
"any.required": "password must be entered",
"string.empty": "password cannot be empty",
"string.min": "password must be at least 8 characters"
}),
image: joi.object().optional().keys({
url: joi.string().optional().messages({
"string.base": "please enter a valid url",
}),
public_id: joi.string().optional().messages({
"string.base": "please enter a valid public_id",
})
}),
gender: joi.string().empty().required().messages({
"string.base": "please enter a valid gender",
"any.required": "gender must be entered",
"string.empty": "gender cannot be empty",
}),
height: joi.number().empty().required().messages({
"number.base": "please enter a valid height number",
"any.required": "height must be entered",
"number.empty": "height cannot be empty",
}),
weight: joi.number().empty().required().messages({
"number.base": "please enter a valid weight number",
"any.required": "weight must be entered",
"number.empty": "weight cannot be empty",
}),
fitness_level: joi.string().empty().required().messages({
"string.base": "please enter a valid fitness_level",
"any.required": "fitness_level must be entered",
"string.empty": "fitness_level cannot be empty",
}),
preferences: joi.object().optional().keys({
fitness_goal: joi.string().empty().required().messages({
"string.base": "please enter a valid fitness_goal",
"any.required": "fitness_goal must be entered",
"string.empty": "fitness_goal cannot be empty",
}),
target_weight: joi.number().empty().required().messages({
"number.base": "please enter a valid target_weight number",
"any.required": "target_weight must be entered",
"number.empty": "target_weight cannot be empty",
}),
workout_frequency: joi.number().empty().required().messages({
"number.base": "please enter a valid workout_frequency number",
"any.required": "workout_frequency must be entered",
"number.empty": "workout_frequency cannot be empty",
}),
preferred_days: joi.array().empty().required().items(joi.string().empty().required().messages({
"string.base": "please enter a valid preferred_days",
"any.required": "preferred_days must be entered",
"string.empty": "preferred_days cannot be empty",
})),
workout_place: joi.string().empty().required().messages({
"string.base": "please enter a valid workout_place",
"any.required": "workout_place must be entered",
"string.empty": "workout_place cannot be empty",
}),
preferred_equipment: joi.array().empty().required().items(joi.string().empty().required().messages({
"string.base": "please enter a valid preferred_equipment",
"any.required": "preferred_equipment must be entered",
"string.empty": "preferred_equipment cannot be empty",
}))
}),
injuries: joi.array().empty().required().items(joi.string().empty().required().messages({
"string.base": "please enter a valid injuries",
"any.required": "injuries must be entered",
"string.empty": "injuries cannot be empty",
})),
dob: joi.date().empty().optional().messages({
"date.base": "please enter a valid date",
})
})
}
}