I define a bean called TestBean on joi syntax. Then defined another bean BeanMethodDocument which uses TestBean schema/bean. Generated Swagger/model ignores this argument, yet an array defined with TestBean works?
The following JOI syntax seems to lose the TestBean definition: "arg: joi.object().schema(TestBean).required(),"
'use strict';
var createRouter = require('@arangodb/foxx/router');
var joi = require('joi');
var router = createRouter();
module.context.use(router);
const TestBean = joi.object().required().keys({
member1: joi.array().items(joi.string().required()),
member2: joi.number().required()
});
const BeanMethodDocument = joi.object().required().keys({
arg: joi.object().schema(TestBean).required(),
argArray: joi.array().items(TestBean).required(),
option: joi.string().valid('Empty','Full','HalfFull','HalfEmpty')
});
router.post('/beanMethod', function (req, res) {
const arg = req.body.arg;
const argArray = req.body.argArray;
const option = req.body.option;
res.send({result:true});
})
.body(BeanMethodDocument, 'beanMethod POST request')
.response(joi.boolean().required(), 'beanMethod POST response')
.summary('beanMethod summary')
.description('beanMethod description');
Generated Swagger document shows the arg argument as empty?
"arg": {
"type": "object",
"properties": {},
"additionalProperties": false
},