реализация условной схемы hapi-joi

Мне нужна схема для запроса, в которой, если присутствует 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() }) в каждое определение каждого обязательного параметра.


person punkish    schedule 14.02.2019    source источник
comment
Другие параметры everythingElse. Вы хотите, чтобы это было только из параметра запроса или может быть получено из полезной нагрузки?   -  person Rahul Patil    schedule 15.02.2019
comment
Вы можете сослаться на - stackoverflow.com/questions/54467550/   -  person Rahul Patil    schedule 15.02.2019