objection-swagger
Version:
Originally designed as Swagger definition generator for Objection.js models. Since then scope was extended to also cover Swagger-compatible snippets generation from plain JSON Schema entries as well as set of conversions that are useful for model and sche
34 lines (29 loc) • 857 B
JavaScript
const _ = require('lodash');
/**
* Transforms Swagger query params into correct JSON Schema
* @param {Object} queryModel - Swagger query params model
* @returns {Object} JSON Schema object
*/
function swaggerQueryParamsToSchema(queryModel) {
const requiredFields = [];
const transformedProperties = {};
_.forOwn(queryModel.items.properties, (value, key) => {
if (value.required) {
requiredFields.push(key);
}
transformedProperties[key] = Object.assign({}, value);
if (!_.isNil(transformedProperties[key].required)) {
delete transformedProperties[key].required;
}
});
return {
title: queryModel.title,
description: queryModel.description,
additionalProperties: false,
required: requiredFields,
properties: transformedProperties,
};
}
module.exports = {
swaggerQueryParamsToSchema,
};