Я создаю модель для управления пользователями, в которой я делаю универсальный c API для внешних пользователей и пользователей AD, поэтому в моей модели у меня есть три дополнительных поля isADUser, adid и addomainid.
Мне нужно сделать adid и addomainid необязательными, если isADUser имеет значение true, в противном случае принудительное применение adid и addomainid не должно указывать go пусто в базе данных, поэтому как изменить required () этих двух полей.
function ValidateUser(user) {
const schema = Joi.object({
userid: Joi.string().min(3).max(50).empty().required().messages({
"string.min": `User Id should be min {#limit} characters..`,
"string.max": `User Id should be max {#limit} characters..`,
"string.empty": "User Id cannot be an empty field..",
"any.required": "User Id is required...",
}),
userpass: Joi.string().min(6).max(1024).empty().required().messages({
"string.min": `Password should be min {#limit} characters..`,
"string.max": `Password should be max {#limit} characters..`,
"string.empty": "Password cannot be an empty field..",
"any.required": "Password is required ...",
}),
userfirstname: Joi.string().min(5).max(70).empty().required().messages({
"string.min": `FirstName should be min {#limit} characters..`,
"string.max": `FirstName should be max {#limit} characters..`,
"string.empty": "FirstName cannot be an empty field..",
"any.required": "FirstName is required...",
}),
userlastname: Joi.string().min(5).max(50).empty().required().messages({
"string.min": `LastName should be min {#limit} characters..`,
"string.max": `LastName should be max {#limit} characters..`,
"string.empty": "LastName cannot be an empty field..",
"any.required": "LastName is required",
}),
useremail: Joi.string()
.min(5)
.max(255)
.empty()
.required()
.email()
.messages({
"string.min": `Email should be min {#limit} characters..`,
"string.max": `Email should be max {#limit} characters..`,
"string.empty": "Email cannot be an empty field..",
"string.email": "Unique Email required ...",
"any.required": "Email is required",
}),
canupdateprofile: Joi.string().min(1).max(1).empty().required().messages({
"string.min": `CanUpdateProfile flag should be min {#limit} character..`,
"string.max": `CanUpdateProfile flag should be max {#limit} character..`,
"string.empty": "CanUpdateProfile flag cannot be an empty field..",
"any.required": "CanUpdateProfile flag is required",
}),
canchangepass: Joi.string().min(1).max(1).empty().required().messages({
"string.min": `CanChangePassword flag should be min {#limit} character..`,
"string.max": `CanChangePasswordflag should be max {#limit} character..`,
"string.empty": "CanChangePassword flag cannot be an empty field..",
"any.required": "CanChangePassword flag is required",
}),
isaduser: Joi.string().min(1).max(1).empty().required().messages({
"string.min": `AD User Flag should be min {#limit} character..`,
"string.max": `AD User Flag should be max {#limit} character..`,
"string.empty": "AD User flag cannot be an empty field..",
"any.required": "AD User flag is required",
}),
adid: Joi.string().min(5).max(255).empty().required().messages({
"string.min": `Active Directory ID should be min {#limit} character..`,
"string.max": `CanChangePasswordflag should be max {#limit} character..`,
"string.empty": "CanChangePassword flag cannot be an empty field..",
"any.required": "CanChangePassword flag is required",
}),
addomainid: Joi.string().min(5).max(255).empty().required().messages({
"string.min": `CanChangePassword flag should be min {#limit} character..`,
"string.max": `CanChangePasswordflag should be max {#limit} character..`,
"string.empty": "CanChangePassword flag cannot be an empty field..",
"any.required": "CanChangePassword flag is required",
}),
});
}