From ae42489863bfca12cd49d097c090e2bdb5d21cf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Jyrkk=C3=A4?= Date: Mon, 30 May 2016 11:32:19 +0300 Subject: [PATCH 1/2] Validate swagger --- package.json | 3 ++- server/methods/swagger.js | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 server/methods/swagger.js 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..a32f1f1cdd --- /dev/null +++ b/server/methods/swagger.js @@ -0,0 +1,19 @@ +import SwaggerParser from 'swagger-parser'; + +Meteor.methods({ + // Validate Swagger JSON/YAML + // Params: URL or file path to Swagger file + // Returns: true if valid else false + validateSwagger: function(url) { + SwaggerParser.validate(url) + .then(function(api){ + console.log("Your API is valid!"); + console.log("API name: %s, Version: %s", api.info.title, api.info.version); + return true; + }) + .catch(function(err){ + console.log(err); + return false; + }); + } +}); From d1a22b9222a5be521507587526a8e7ccda6b1670 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Jyrkk=C3=A4?= Date: Mon, 30 May 2016 14:14:50 +0300 Subject: [PATCH 2/2] Improve function --- server/methods/swagger.js | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/server/methods/swagger.js b/server/methods/swagger.js index a32f1f1cdd..62e29762f0 100644 --- a/server/methods/swagger.js +++ b/server/methods/swagger.js @@ -3,17 +3,16 @@ import SwaggerParser from 'swagger-parser'; Meteor.methods({ // Validate Swagger JSON/YAML // Params: URL or file path to Swagger file - // Returns: true if valid else false - validateSwagger: function(url) { - SwaggerParser.validate(url) - .then(function(api){ - console.log("Your API is valid!"); - console.log("API name: %s, Version: %s", api.info.title, api.info.version); + // Returns: true if valid else return error object + isValidSwagger: function(swaggerFileUrl) { + return SwaggerParser.validate(swaggerFileUrl) + .then( (swaggerApi) => { + // Parsed and validated successfully return true; }) - .catch(function(err){ - console.log(err); - return false; + .catch( (err) => { + // Return error object + return err; }); } });