реализация условной схемы хапи-дой - PullRequest
0 голосов
/ 14 февраля 2019

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

...