Files
fastapi-openapi-to-postman/lib/31XUtils/inputValidation31X.js
Luis Tejeda 50ba85ce68 Change validation input when version is 3.1.x
if the option includeWebhooks is false and there are no paths (only webhooks or componentes) throw error.
2022-02-09 12:46:31 -06:00

49 lines
1.4 KiB
JavaScript

module.exports = {
/**
* Validate Spec to check if some of the required fields are present.
* OpenAPI 3.1 only openapi and info are always required,
* but the document must also contain at least one of paths or webhooks or components.
* @param {Object} spec OpenAPI spec
* @param {Object} options computed process options
* @return {Object} Validation result
*/
validateSpec: function (spec, options) {
const includeWebhooksOption = options.includeWebhooks;
if (!spec.hasOwnProperty('openapi')) {
return {
result: false,
reason: 'Specification must contain a semantic version number of the OAS specification'
};
}
if (!spec.hasOwnProperty('info')) {
return {
result: false,
reason: 'Specification must contain an Info Object for the meta-data of the API'
};
}
if (!spec.hasOwnProperty('paths') && !includeWebhooksOption) {
return {
result: false,
reason: 'Specification must contain Paths Object for the available operational paths'
};
}
if (includeWebhooksOption && !spec.hasOwnProperty('paths') &&
!spec.hasOwnProperty('webhooks') && !spec.hasOwnProperty('components')) {
return {
result: false,
reason: 'Specification must contain either Paths, Webhooks or Components sections'
};
}
return {
result: true,
openapi: spec
};
}
};