Я использую hapijs для написания микросервиса. У меня есть API, который принимает три параметра в теле запроса (метод POST)
- ID пользователя
- Фамилия
- Дата рождения
Я планирую провести валидацию с помощью JOI. Подтверждение должно быть следующим
UserID должен быть обязателен, если в запросе отсутствуют как фамилия, так и дата рождения.
Если UserID отсутствует, необходимо указать как фамилию, так и дату рождения.
Я пытался добиться этого, следуя. Похоже, это не работает.
export const userRequestModel = Joi.object().keys({
lastname: Joi.string().when('uid',
{
is: undefined,
then: Joi.string().required()
}),
dob: Joi.string().when('uid',
{
is: undefined,
then: Joi.string().required()
}),
uid: Joi.string().
when('lastname',
{
is: undefined,
then: Joi.string().required()
}).
concat(Joi.string().when('dob',
{
is: undefined,
then: Joi.string().required()
}))
});
Объединение не кажется синтаксически правильным. Он показывает приведенную ниже ошибку ввода
Аргумент типа 'AlternativesSchema' не может быть назначен параметру типа 'FunctionSchema'. Свойство 'arity' отсутствует в типе 'AlternativesSchema'.