Joi Validation для проверки того или иного поля - PullRequest
0 голосов
/ 20 апреля 2020

Я хочу проверить соответствие пользователя crendentiol типу пользователя. В настоящее время я использую схему проверки ниже. Я хочу проверить, если userType - USER_TYPE_CUSTOMER, я хочу проверить номер мобильного телефона или электронную почту. Как я могу изменить это для условной проверки клиента?

    public schemaForCredentialAuth(): Joi.ObjectSchema {
       return Joi.object({
        authType: Joi.string().valid(AUTH_BY_CREDENTIAL).required(),

        // internal or customer; 
        userType: Joi.string()
            .valid(...getUserTypes())
            .required(),

        // mobile required for customer auth only
        mobile: mobileNumberSchema
            .when('userType', {is: USER_TYPE_CUSTOMER, then: Joi.required()}),

        // email: required for internal user only
        email: Joi.string().email({minDomainSegments: 2})
            .when('userType', {is: USER_TYPE_INTERNAL, then: Joi.required()}),

        password: Joi.string().min(5).max(30).required(),
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...