From 765ede62db4130b83219ba0cbf519740d64b9a3e Mon Sep 17 00:00:00 2001 From: Kogulan Baskaran Date: Wed, 26 Oct 2016 16:05:14 +1100 Subject: [PATCH 1/2] Handling null value in query --- lib/http-invocation.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/http-invocation.js b/lib/http-invocation.js index 0839dcfd..7ca26b7b 100644 --- a/lib/http-invocation.js +++ b/lib/http-invocation.js @@ -171,6 +171,9 @@ HttpInvocation.prototype.createRequest = function() { var query; var i; var auth = this.auth; + var opts = { + strictNullHandling: true + }; // initial url is the format req.url = this.base + endpoint.fullPath; @@ -212,7 +215,7 @@ HttpInvocation.prototype.createRequest = function() { } if (query) { - req.url += '?' + qs.stringify(query); + req.url += '?' + qs.stringify(query, opts); } return req; From 95b96ff153c600d287b7c341d78119d4fdc06874 Mon Sep 17 00:00:00 2001 From: Kogulan Baskaran Date: Wed, 26 Oct 2016 17:56:00 +1100 Subject: [PATCH 2/2] Using JSON stringify instead of qs --- lib/http-invocation.js | 10 +++++----- package.json | 1 - 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/http-invocation.js b/lib/http-invocation.js index 7ca26b7b..265c7b6f 100644 --- a/lib/http-invocation.js +++ b/lib/http-invocation.js @@ -21,7 +21,6 @@ var assert = require('assert'); var request = require('request'); var Dynamic = require('./dynamic'); var SUPPORTED_TYPES = ['json', 'application/javascript', 'text/javascript']; -var qs = require('qs'); var urlUtil = require('url'); var ReadableStream = require('stream').Readable; var MuxDemux = require('mux-demux'); @@ -171,9 +170,6 @@ HttpInvocation.prototype.createRequest = function() { var query; var i; var auth = this.auth; - var opts = { - strictNullHandling: true - }; // initial url is the format req.url = this.base + endpoint.fullPath; @@ -215,7 +211,11 @@ HttpInvocation.prototype.createRequest = function() { } if (query) { - req.url += '?' + qs.stringify(query, opts); + var urlParams = Object.keys(query).map(function(key) { + return key + '=' + JSON.stringify(query[key]); + }).join('&'); + + req.url += '?' + encodeURI(urlParams); } return req; diff --git a/package.json b/package.json index 99b8eb50..f74ae4eb 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,6 @@ "js2xmlparser": "^1.0.0", "loopback-phase": "^1.3.0", "mux-demux": "^3.7.9", - "qs": "^6.2.1", "request": "^2.55.0", "sse": "0.0.6", "strong-globalize": "^2.6.6",