hapijs - examples - Joi validación de matriz
joi validate file (3)
tratando de validar que una matriz tiene cero o más cadenas en un caso y que tiene cero o más objetos en otro, luchando con los documentos Joi :(
validate: {
headers: Joi.object({
''content-type'': "application/vnd.api+json",
accept: "application/vnd.api+json"
}).options({ allowUnknown: true }),
payload : Joi.object().keys({
data : Joi.object().keys({
type: Joi.any().allow(''BY_TEMPLATE'').required(),
attributes: Joi.object({
to : Joi.string().email().required(),
templateId : Joi.string().required(),
categories : Joi.array().items( //trying to validate here that each element is a string),
variables : Joi.array({
//also trying to validate here that each element is an Object with one key and value
})
})
}).required()
})
}
Joi.array().items()
acepta otro esquema Joi para usar contra los elementos de la matriz. Así que una serie de cadenas es así de fácil:
Joi.array().items(Joi.string())
Lo mismo para una matriz de objetos; simplemente pase un esquema de objeto a los items()
:
Joi.array().items(Joi.object({
// Object schema
}))
Joi.array().items(Joi.string().required(), Joi.number().required());
lo encontré here
validate: {
headers: Joi.object({
''content-type'': "application/vnd.api+json",
accept: "application/vnd.api+json"
}).options({ allowUnknown: true }),
payload : Joi.object().keys({
data : Joi.object().keys({
type: Joi.any().allow(''BY_TEMPLATE'').required(),
attributes: Joi.object({
to : Joi.string().email().required(),
templateId : Joi.string().required(),
categories : Joi.array().items(Joi.string()),
variables : Joi.array().items(Joi.object().keys().max(1))
})
}).required()
})
}