Мне нужна схема для запроса, в которой, если присутствует id
, то любые другие параметры, которые могут присутствовать, игнорируются.Однако, если id
отсутствует, то применяются условия проверки, при которых некоторые параметры равны required
.Другими словами, что-то вроде этого
query: {
id: Joi.number()
.description("record id. All other query params are ignored if id is provided.")
.integer()
.positive()
.optional(),
everythingElse: {
foo: Joi.string()
.required(),
bar: Joi.string()
.required(),
baz: Joi.string()
.optional(),
qux: Joi.string()
.optional()
}
}
Возможно ли вышеизложенное?Считая синтаксис Joi
, кажется, мне нужно будет добавить выражение when('id', {is: Joi.number().positive().integer(), then: Joi.optional(), otherwise: Joi.required() })
в каждое определение каждого требуемого параметра.