From 2a642f5a5ff7e9f6e7e220edbfdf04c443a3c98a Mon Sep 17 00:00:00 2001 From: Tony Tam Date: Wed, 26 Feb 2014 12:13:42 -0800 Subject: [PATCH] fix for https://github.com/wordnik/swagger-js/issues/81 --- dist/lib/swagger.js | 27 +++++++++++++++------------ lib/swagger.js | 27 +++++++++++++++------------ package.json | 2 +- 3 files changed, 31 insertions(+), 25 deletions(-) diff --git a/dist/lib/swagger.js b/dist/lib/swagger.js index 3d5cdf1b..208873b0 100644 --- a/dist/lib/swagger.js +++ b/dist/lib/swagger.js @@ -1,5 +1,5 @@ // swagger.js -// version 2.0.19 +// version 2.0.21 var __bind = function(fn, me){ return function(){ @@ -829,10 +829,11 @@ SwaggerOperation.prototype.urlify = function(args) { for(var i = 0; i < params.length; i ++){ var param = params[i]; if(param.paramType === 'query') { - if(queryParams !== '') - queryParams += "&"; - if(args[param.name] !== undefined) + if (args[param.name] !== undefined) { + if (queryParams !== '') + queryParams += "&"; queryParams += encodeURIComponent(param.name) + '=' + encodeURIComponent(args[param.name]); + } } } if ((queryParams != null) && queryParams.length > 0) @@ -964,23 +965,25 @@ var SwaggerRequest = function(type, url, params, opts, successCallback, errorCal var possibleParams = {}; var values = {}; - for(var i = 0; i < formParams.length; i++){ - var param = formParams[i]; + for(var key in formParams){ + var param = formParams[key]; values[param.name] = param; } var encoded = ""; - for(key in values) { + for(var key in values) { value = this.params[key]; - if(encoded !== "") - encoded += "&"; - encoded += encodeURIComponent(key) + '=' + encodeURIComponent(value); + if(typeof value !== 'undefined'){ + if(encoded !== "") + encoded += "&"; + encoded += encodeURIComponent(key) + '=' + encodeURIComponent(value); + } } - body = encoded + body = encoded; } for (name in this.headers) myHeaders[name] = this.headers[name]; - if (requestContentType && body) + if ((requestContentType && body !== "") || (requestContentType === "application/x-www-form-urlencoded")) myHeaders["Content-Type"] = requestContentType; if (responseContentType) myHeaders["Accept"] = responseContentType; diff --git a/lib/swagger.js b/lib/swagger.js index 3d5cdf1b..208873b0 100644 --- a/lib/swagger.js +++ b/lib/swagger.js @@ -1,5 +1,5 @@ // swagger.js -// version 2.0.19 +// version 2.0.21 var __bind = function(fn, me){ return function(){ @@ -829,10 +829,11 @@ SwaggerOperation.prototype.urlify = function(args) { for(var i = 0; i < params.length; i ++){ var param = params[i]; if(param.paramType === 'query') { - if(queryParams !== '') - queryParams += "&"; - if(args[param.name] !== undefined) + if (args[param.name] !== undefined) { + if (queryParams !== '') + queryParams += "&"; queryParams += encodeURIComponent(param.name) + '=' + encodeURIComponent(args[param.name]); + } } } if ((queryParams != null) && queryParams.length > 0) @@ -964,23 +965,25 @@ var SwaggerRequest = function(type, url, params, opts, successCallback, errorCal var possibleParams = {}; var values = {}; - for(var i = 0; i < formParams.length; i++){ - var param = formParams[i]; + for(var key in formParams){ + var param = formParams[key]; values[param.name] = param; } var encoded = ""; - for(key in values) { + for(var key in values) { value = this.params[key]; - if(encoded !== "") - encoded += "&"; - encoded += encodeURIComponent(key) + '=' + encodeURIComponent(value); + if(typeof value !== 'undefined'){ + if(encoded !== "") + encoded += "&"; + encoded += encodeURIComponent(key) + '=' + encodeURIComponent(value); + } } - body = encoded + body = encoded; } for (name in this.headers) myHeaders[name] = this.headers[name]; - if (requestContentType && body) + if ((requestContentType && body !== "") || (requestContentType === "application/x-www-form-urlencoded")) myHeaders["Content-Type"] = requestContentType; if (responseContentType) myHeaders["Accept"] = responseContentType; diff --git a/package.json b/package.json index af86e521..62abe110 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "readmeFilename": "README.md", "dependencies": { "coffee-script": "~1.5.0", - "swagger-client": "2.0.19", + "swagger-client": "2.0.21", "handlebars": "~1.0.10", "less": "~1.4.2" }