From 594df987f279ff423b82e96f0aa5fa6ef9bde959 Mon Sep 17 00:00:00 2001 From: Maximilian Hoffmann Date: Wed, 27 May 2015 13:32:34 +0200 Subject: [PATCH 1/3] fix array params --- lib/helpers/buildUrl.js | 5 +++++ test/specs/helpers/buildUrl.spec.js | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/helpers/buildUrl.js b/lib/helpers/buildUrl.js index f624cbe..b25f0ef 100644 --- a/lib/helpers/buildUrl.js +++ b/lib/helpers/buildUrl.js @@ -29,6 +29,11 @@ module.exports = function buildUrl(url, params) { if (val === null || typeof val === 'undefined') { return; } + + if (utils.isArray(val)) { + key = key+'[]'; + } + if (!utils.isArray(val)) { val = [val]; } diff --git a/test/specs/helpers/buildUrl.spec.js b/test/specs/helpers/buildUrl.spec.js index 4b4bd01..604d442 100644 --- a/test/specs/helpers/buildUrl.spec.js +++ b/test/specs/helpers/buildUrl.spec.js @@ -30,7 +30,7 @@ describe('helpers::buildUrl', function () { it('should support array params', function () { expect(buildUrl('/foo', { foo: ['bar', 'baz'] - })).toEqual('/foo?foo=bar&foo=baz'); + })).toEqual('/foo?foo%5B%5D=bar&foo%5B%5D=baz'); }); it('should support special char params', function () { From f44597e38b5a9df0e7f28ea3eb2d62930fbbd74b Mon Sep 17 00:00:00 2001 From: Maximilian Hoffmann Date: Thu, 23 Jul 2015 10:46:21 +0200 Subject: [PATCH 2/3] =?UTF-8?q?don=E2=80=99t=20escape=20square=20brackets?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/helpers/buildUrl.js | 6 ++++-- test/specs/helpers/buildUrl.spec.js | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/helpers/buildUrl.js b/lib/helpers/buildUrl.js index b25f0ef..966a521 100644 --- a/lib/helpers/buildUrl.js +++ b/lib/helpers/buildUrl.js @@ -8,7 +8,9 @@ function encode(val) { replace(/%3A/gi, ':'). replace(/%24/g, '$'). replace(/%2C/gi, ','). - replace(/%20/g, '+'); + replace(/%20/g, '+') + replace(/%5B/gi, '['). + replace(/%5D/gi, ']'); } /** @@ -31,7 +33,7 @@ module.exports = function buildUrl(url, params) { } if (utils.isArray(val)) { - key = key+'[]'; + key = key + '[]'; } if (!utils.isArray(val)) { diff --git a/test/specs/helpers/buildUrl.spec.js b/test/specs/helpers/buildUrl.spec.js index 604d442..ce3989e 100644 --- a/test/specs/helpers/buildUrl.spec.js +++ b/test/specs/helpers/buildUrl.spec.js @@ -30,7 +30,7 @@ describe('helpers::buildUrl', function () { it('should support array params', function () { expect(buildUrl('/foo', { foo: ['bar', 'baz'] - })).toEqual('/foo?foo%5B%5D=bar&foo%5B%5D=baz'); + })).toEqual('/foo?foo[]=bar&foo[]=baz'); }); it('should support special char params', function () { From 2209226c7c69b7cb1ded9f84d2bfdcd6034a01f6 Mon Sep 17 00:00:00 2001 From: Maximilian Hoffmann Date: Thu, 23 Jul 2015 10:49:12 +0200 Subject: [PATCH 3/3] fix missing dot --- lib/helpers/buildUrl.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/helpers/buildUrl.js b/lib/helpers/buildUrl.js index 966a521..c3b6e2f 100644 --- a/lib/helpers/buildUrl.js +++ b/lib/helpers/buildUrl.js @@ -8,7 +8,7 @@ function encode(val) { replace(/%3A/gi, ':'). replace(/%24/g, '$'). replace(/%2C/gi, ','). - replace(/%20/g, '+') + replace(/%20/g, '+'). replace(/%5B/gi, '['). replace(/%5D/gi, ']'); }