具有四个参数:email,phone和email_verified和phone_verified。
我需要一个joi验证
如果在有效载荷中对phone_verify进行了验证,则电话应该通过。
Joi.object().options({abortEarly: false}).keys({
user: Joi.object().keys({
email: Joi.string().email(),
email_verified: Joi.when('email', {
is : Joi.exist(),
then: Joi.boolean().strict().required(),
otherwise: Joi.optional().allow(null).default(false)
}),
phone: Joi.string().allow(null),
phone_verified: Joi.when('phone', {
is : Joi.exist(),
then: Joi.boolean().strict().required(),
otherwise: Joi.optional().allow(null).default(false)
}),
}).xor('email','phone')})
有效载荷
{
"email": "elizbethsmith@millicom.com",
"emailVerified": true,
"phone": "9012345678",
"phoneVerified": true
}
Joi消息-包含互斥对等体[电子邮件,电话]之间的冲突