routing-controllers-openapi-extended
Version:
Runtime Swagger v2 / OpenAPI v2 specification generation for routing-controllers
36 lines • 3.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const _ = require("lodash");
const parameterParser_1 = require("./parameterParser");
const common_1 = require("./common");
function getRequestBody(route) {
const bodyParamMetas = route.params.filter(d => d.type === 'body-param');
const bodyParamsSchema = bodyParamMetas.length > 0
? bodyParamMetas.reduce((acc, d) => (Object.assign(Object.assign({}, acc), { properties: Object.assign(Object.assign({}, acc.properties), { [d.name]: parameterParser_1.getParamSchema(d) }), required: common_1.isRequired(d, route)
? [...(acc.required || []), d.name]
: acc.required })), { properties: {}, required: [], type: 'object' })
: null;
const bodyMeta = route.params.find(d => d.type === 'body');
if (bodyMeta) {
const bodySchema = parameterParser_1.getParamSchema(bodyMeta);
const { $ref } = 'items' in bodySchema && bodySchema.items ? bodySchema.items : bodySchema;
return {
content: {
'application/json': {
schema: bodyParamsSchema
? { allOf: [bodySchema, bodyParamsSchema] }
: bodySchema
}
},
description: _.last(_.split($ref, '/')),
required: common_1.isRequired(bodyMeta, route)
};
}
else if (bodyParamsSchema) {
return {
content: { 'application/json': { schema: bodyParamsSchema } }
};
}
}
exports.getRequestBody = getRequestBody;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdEJvZHlQYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGFyc2VyL3JlcXVlc3RCb2R5UGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNEJBQTJCO0FBRzNCLHVEQUFtRDtBQUNuRCxxQ0FBc0M7QUFFdEMsU0FBZ0IsY0FBYyxDQUFDLEtBQVk7SUFDdkMsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxDQUFBO0lBQ3hFLE1BQU0sZ0JBQWdCLEdBQ3BCLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUN2QixDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FDbkIsQ0FBQyxHQUFvQixFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsaUNBQ3hCLEdBQUcsS0FDTixVQUFVLGtDQUNMLEdBQUcsQ0FBQyxVQUFVLEtBQ2pCLENBQUMsQ0FBQyxDQUFDLElBQUssQ0FBQyxFQUFFLGdDQUFjLENBQUMsQ0FBQyxDQUFDLEtBRTlCLFFBQVEsRUFBRSxtQkFBVSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUM7Z0JBQzVCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFLLENBQUM7Z0JBQ3BDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUNoQixFQUNGLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FDakQ7UUFDSCxDQUFDLENBQUMsSUFBSSxDQUFBO0lBRVYsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFBO0lBRTFELElBQUksUUFBUSxFQUFFO1FBQ1osTUFBTSxVQUFVLEdBQUcsZ0NBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUMzQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQ1osT0FBTyxJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUE7UUFFM0UsT0FBTztZQUNMLE9BQU8sRUFBRTtnQkFDUCxrQkFBa0IsRUFBRTtvQkFDbEIsTUFBTSxFQUFFLGdCQUFnQjt3QkFDdEIsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsVUFBVSxFQUFFLGdCQUFnQixDQUFDLEVBQUU7d0JBQzNDLENBQUMsQ0FBQyxVQUFVO2lCQUNmO2FBQ0Y7WUFDRCxXQUFXLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN2QyxRQUFRLEVBQUUsbUJBQVUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDO1NBQ3RDLENBQUE7S0FDRjtTQUFNLElBQUksZ0JBQWdCLEVBQUU7UUFDM0IsT0FBTztZQUNMLE9BQU8sRUFBRSxFQUFFLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLEVBQUU7U0FDOUQsQ0FBQTtLQUNGO0FBQ0gsQ0FBQztBQTFDSCx3Q0EwQ0cifQ==