Я хочу провести валидацию с Джои в моем теле, но, похоже, это никогда не сработает и все время падаю в одном и том же состоянии. Итак, если я POST с этим
endPoint: / elasticSearch? eType = scroll & scroll = 1h
Тело:{}
который должен вызывать ошибку, потому что eType - это scroll, и в этом случае должен быть обязательным scroll_id, а не нулевым или пустым.
даже когда я POST с этим
endPoint: / elasticSearch? eType = search & scroll = 1h
Тело:{}
который должен вызывать ошибку, потому что eType - это поиск, и в этом случае необходимо указать запрос.
так что с этими кодами,
в одном случае он всегда проходит, как если бы у него не было проверки, даже если они не должны проходить, по моему мнению, а во втором случае я получил ошибку: требуется запрос, а scroll_id требуется все время, когда я звоню.
так кто-нибудь может помочь мне понять, почему эти проверки неверны?
Спасибо
Обновить
По умолчанию, если я сделаю это так:
body:
{
query:
Joi.alternatives()
.when(Joi.ref('$query.eType'),
{
is: Joi.string().equal('search'),
then: Joi.required()
}
),
scroll_id:
Joi.alternatives()
.when(Joi.ref('$query.eType'),
{
is: Joi.string().equal('scroll'),
then: Joi.required()
}
)
}
Это все время требовало запроса и scroll_id.