Я хочу сделать проверку с Джои в моем теле, но, кажется, никогда не работает и все время находится в одном и том же состоянии.Так что если я POST с этим
endPoint: /asticSearch? EType = scroll & scroll = 1h
Body: {}
, который должен выдавать ошибку, потому что eType scroll , и в этом случае scroll_id должен быть обязательным, не нулевым, не пустым.
даже когда я POST с этим
endPoint: /asticSearch? eType = search & scroll = 1h
Body: {}
, который должен выдавать ошибку, потому что eType равен search и в этом случае query должно бытьтребуется.
поэтому с этими кодами
в одном случае он просто всегда проходит, как если бы он не проходил проверку, даже если они не должны проходить по моему мнению, а во втором случае я получил ошибку: требуется запрос, и 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 все время.