Как в Joi написать условия проверки вхождения хотябы одного конкретного значения в массиве?
Требуется проверить: если указан объект BU, то должен быть хотябы один объект PN со status == 1
Пример json
{
"BU":[
{
"businessName":"OOO Александров",
"businessStatus":"0"
}
],
"PN":[
{
"number":"7777777",
"status":1
},
{
"number":"7777777",
"status":2
}
]
}
Ответы (1 шт):
Автор решения: Динис Коновалов
→ Ссылка
Удалось решить проблему. Приведу ниже решение
Joi.object({
BU: Joi.array()
.items(require("./BU"))
.max(1),
PN: Joi.array()
.items(require("./PN"))
.max(5)
}).when(
Joi.object({
BU: Joi.exist()
}).unknown(),
{
then: Joi.object({
PN: Joi.array()
.required()
.has(
Joi.object({
status: Joi.valid("1")
})
)
})
}
);