From 0095768ab7cf3d330700306361933137b29d9230 Mon Sep 17 00:00:00 2001 From: Tony Tam Date: Tue, 18 Feb 2014 15:54:36 -0800 Subject: [PATCH] fix for https://github.com/wordnik/swagger-ui/pull/399 --- dist/lib/swagger.js | 18 ++++++++++-------- lib/swagger.js | 18 ++++++++++-------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/dist/lib/swagger.js b/dist/lib/swagger.js index 5df38cbe..3e1f8d23 100644 --- a/dist/lib/swagger.js +++ b/dist/lib/swagger.js @@ -67,7 +67,7 @@ SwaggerApi.prototype.build = function() { } }, response: function(resp) { - var responseObj = resp.obj; + var responseObj = resp.obj || JSON.parse(resp.data); _this.swaggerVersion = responseObj.swaggerVersion; if (_this.swaggerVersion === "1.2") { return _this.buildFromSpec(responseObj); @@ -284,8 +284,8 @@ var SwaggerResource = function(resourceObj, api) { accept: "application/json" }, on: { - response: function(response) { - var responseObj = response.obj; + response: function(resp) { + var responseObj = resp.obj || JSON.parse(resp.data); return _this.addApiDeclaration(responseObj); }, error: function(response) { @@ -478,11 +478,11 @@ SwaggerModel.prototype.getMockSignature = function(modelsToIgnore) { var returnVal = classOpen + '
' + propertiesStr.join(',
') + '
' + classClose; if (!modelsToIgnore) modelsToIgnore = []; - modelsToIgnore.push(this); + modelsToIgnore.push(this.name); for (var i = 0; i < this.properties.length; i++) { prop = this.properties[i]; - if ((prop.refModel != null) && modelsToIgnore.indexOf(prop.refModel) === -1) { + if ((prop.refModel != null) && modelsToIgnore.indexOf(prop.refModel.name) === -1) { returnVal = returnVal + ('
' + prop.refModel.getMockSignature(modelsToIgnore)); } } @@ -534,7 +534,7 @@ var SwaggerModelProperty = function(name, obj) { SwaggerModelProperty.prototype.getSampleValue = function(modelsToIgnore) { var result; - if ((this.refModel != null) && (modelsToIgnore[this.refModel.name] === undefined)) { + if ((this.refModel != null) && (modelsToIgnore.indexOf(prop.refModel.name) === -1)) { result = this.refModel.createJSONSample(modelsToIgnore); } else { if (this.isCollection) { @@ -831,7 +831,8 @@ SwaggerOperation.prototype.urlify = function(args) { if(param.paramType === 'query') { if(queryParams !== '') queryParams += "&"; - queryParams += encodeURIComponent(param.name) + '=' + encodeURIComponent(args[param.name]); + if(args[param.name] !== undefined) + queryParams += encodeURIComponent(param.name) + '=' + encodeURIComponent(args[param.name]); } } if ((queryParams != null) && queryParams.length > 0) @@ -1274,7 +1275,7 @@ ApiKeyAuthorization.prototype.apply = function(obj, authorizations) { if (obj.url.indexOf('?') > 0) obj.url = obj.url + "&" + this.name + "=" + this.value; else - obj.url = obj.url + "?" + this.name + "=" + this.value; + obj.url = obj.url + "?" + this.name + "=" + this.value; return true; } else if (this.type === "header") { obj.headers[this.name] = this.value; @@ -1307,6 +1308,7 @@ var e = (typeof window !== 'undefined' ? window : exports); e.SwaggerHttp = SwaggerHttp; e.SwaggerRequest = SwaggerRequest; e.authorizations = new SwaggerAuthorizations(); +e.ApiKeyAuthorization = ApiKeyAuthorization; e.JQueryHttpClient = JQueryHttpClient; e.ShredHttpClient = ShredHttpClient; e.SwaggerOperation = SwaggerOperation; diff --git a/lib/swagger.js b/lib/swagger.js index 5df38cbe..3e1f8d23 100644 --- a/lib/swagger.js +++ b/lib/swagger.js @@ -67,7 +67,7 @@ SwaggerApi.prototype.build = function() { } }, response: function(resp) { - var responseObj = resp.obj; + var responseObj = resp.obj || JSON.parse(resp.data); _this.swaggerVersion = responseObj.swaggerVersion; if (_this.swaggerVersion === "1.2") { return _this.buildFromSpec(responseObj); @@ -284,8 +284,8 @@ var SwaggerResource = function(resourceObj, api) { accept: "application/json" }, on: { - response: function(response) { - var responseObj = response.obj; + response: function(resp) { + var responseObj = resp.obj || JSON.parse(resp.data); return _this.addApiDeclaration(responseObj); }, error: function(response) { @@ -478,11 +478,11 @@ SwaggerModel.prototype.getMockSignature = function(modelsToIgnore) { var returnVal = classOpen + '
' + propertiesStr.join(',
') + '
' + classClose; if (!modelsToIgnore) modelsToIgnore = []; - modelsToIgnore.push(this); + modelsToIgnore.push(this.name); for (var i = 0; i < this.properties.length; i++) { prop = this.properties[i]; - if ((prop.refModel != null) && modelsToIgnore.indexOf(prop.refModel) === -1) { + if ((prop.refModel != null) && modelsToIgnore.indexOf(prop.refModel.name) === -1) { returnVal = returnVal + ('
' + prop.refModel.getMockSignature(modelsToIgnore)); } } @@ -534,7 +534,7 @@ var SwaggerModelProperty = function(name, obj) { SwaggerModelProperty.prototype.getSampleValue = function(modelsToIgnore) { var result; - if ((this.refModel != null) && (modelsToIgnore[this.refModel.name] === undefined)) { + if ((this.refModel != null) && (modelsToIgnore.indexOf(prop.refModel.name) === -1)) { result = this.refModel.createJSONSample(modelsToIgnore); } else { if (this.isCollection) { @@ -831,7 +831,8 @@ SwaggerOperation.prototype.urlify = function(args) { if(param.paramType === 'query') { if(queryParams !== '') queryParams += "&"; - queryParams += encodeURIComponent(param.name) + '=' + encodeURIComponent(args[param.name]); + if(args[param.name] !== undefined) + queryParams += encodeURIComponent(param.name) + '=' + encodeURIComponent(args[param.name]); } } if ((queryParams != null) && queryParams.length > 0) @@ -1274,7 +1275,7 @@ ApiKeyAuthorization.prototype.apply = function(obj, authorizations) { if (obj.url.indexOf('?') > 0) obj.url = obj.url + "&" + this.name + "=" + this.value; else - obj.url = obj.url + "?" + this.name + "=" + this.value; + obj.url = obj.url + "?" + this.name + "=" + this.value; return true; } else if (this.type === "header") { obj.headers[this.name] = this.value; @@ -1307,6 +1308,7 @@ var e = (typeof window !== 'undefined' ? window : exports); e.SwaggerHttp = SwaggerHttp; e.SwaggerRequest = SwaggerRequest; e.authorizations = new SwaggerAuthorizations(); +e.ApiKeyAuthorization = ApiKeyAuthorization; e.JQueryHttpClient = JQueryHttpClient; e.ShredHttpClient = ShredHttpClient; e.SwaggerOperation = SwaggerOperation;