diff --git a/package.json b/package.json index 9d4aa62b86..0b53c918c1 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,8 @@ "elasticsearch": "^11.0.1", "jquery.rateit": "^1.0.23", "js-yaml": "^3.6.1", - "simple-statistics": "^2.0.0-beta1" + "simple-statistics": "^2.0.0-beta1", + "swagger-parser": "^3.4.1" }, "devDependencies": {}, "scripts": { diff --git a/server/methods/swagger.js b/server/methods/swagger.js new file mode 100644 index 0000000000..62e29762f0 --- /dev/null +++ b/server/methods/swagger.js @@ -0,0 +1,18 @@ +import SwaggerParser from 'swagger-parser'; + +Meteor.methods({ + // Validate Swagger JSON/YAML + // Params: URL or file path to Swagger file + // Returns: true if valid else return error object + isValidSwagger: function(swaggerFileUrl) { + return SwaggerParser.validate(swaggerFileUrl) + .then( (swaggerApi) => { + // Parsed and validated successfully + return true; + }) + .catch( (err) => { + // Return error object + return err; + }); + } +});