У меня есть 3 параметра запроса: долгота, широта и радиус.
У меня есть 3 возможных условия:
- radius — пусто, долгота и широта с некоторым значением
- все 3 параметра со значением
- все 3 параметра пусты
Во всех остальных случаях отправить ошибку проверки.
e.g.
долгота=3,12 — ошибка
широта=2,12, радиус=3,2 — ошибка
долгота=12,12, широта=2,12 – нормально
Моя схема выглядит так:
const schema = Joi.object().keys({
longitude: Joi.number().optional().error(new Error('LBL_BAD_LONGITUDE'))
.when('latitude', { is: Joi.exist(), then: Joi.number().required() })
.when('radius', { is: Joi.exist(), then: Joi.number().required() }),
latitude: Joi.number().optional().error(new Error('LBL_BAD_LATITUDE'))
.when('longitude', { is: Joi.exist(), then: Joi.number().required() })
.when('radius', { is: Joi.exist(), then: Joi.number().required() }),
radius: Joi.number().optional().error(new Error('LBL_BAD_RADIUS')),
});
В результате получаю ошибку
AssertionError [ERR_ASSERTION]: item added into group latitude created a dependencies error
Любая идея о том, как проверить эти 3 параметра?