Добавить ошибку в существующие ошибки при проверке объекта через хапи / джой - PullRequest
0 голосов
/ 11 апреля 2020
const schema = Joi.object().keys({
              Id: Joi.number().required(),
              CustomerName: Joi.string()
                .trim()
                .required()
                .when('$isInValidCustomer', {
                  is: true,
                  then: //Add some error in existing error block,
                }),
               BankName: Joi.string().trim(),
            });

const custDetail = {
Id: 2,
CustomerName: 'xyz'
BankName: ''
};

const schemaOptions = {
              abortEarly: false,
              context: {
                isInValidCustomer: true,
              },
            };

const valError = schema.validate(custDetail, schemaOptions);

Итак, теперь, когда я проверяю объект 'custDetail', мне нужны следующие 2 ошибки: - Ошибка CustomerName, потому что 'isInValidCustomer' - true - Требуется BankName

Я не могу добавить ошибку для CustomerName в существующем объекте ошибки. Если я использую «.error ()», то просто получаю единственную ошибку, соответствующую «CustomerName», иначе просто получаю ошибку для BankName.

Любая помощь действительно приветствуется.

1 Ответ

0 голосов
/ 14 апреля 2020

Этого можно добиться с помощью пользовательской функции.

const schema = Joi.object().keys({
              Id: Joi.number().required(),
              CustomerName: Joi.string()
                .trim()
                .required()
                .when('$isInValidCustomer', {
                  is: true,
                  then: Joi.any().custom(() => {
                    throw new Error('Invalid Customer');
                    }),
                }),
               BankName: Joi.string().trim(),
            });
...