From 4390a11a73f7cd0fdbd2686fdcea8a805430350d Mon Sep 17 00:00:00 2001 From: lucas-barbosa-oliveira Date: Thu, 25 Nov 2021 13:10:12 -0300 Subject: [PATCH 1/4] Accepting querystring of numbers starting with 0 (zero). --- lib/mapper/filters.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/mapper/filters.js b/lib/mapper/filters.js index fd32141..dd5242d 100644 --- a/lib/mapper/filters.js +++ b/lib/mapper/filters.js @@ -48,6 +48,7 @@ function treatValue(value) { else if (value.includes('*')) return buildRegEx(value) else if (value.includes(':')) return getCompareOperator(value) else if (value === 'now') return normalizeDate(dateToString(new Date()), false) + else if (/^\d*$/.test(value) && (parseInt(value).toString().length !== value.length)) return value else if (/^\d*$/.test(value)) return parseInt(value) return value } From 435eeec055e51416ab727c5a9df3356387f01ca8 Mon Sep 17 00:00:00 2001 From: Adson-Macedo Date: Mon, 29 Nov 2021 16:13:34 -0300 Subject: [PATCH 2/4] Accepting integer with a leading zero in query string - Adding some unit tests for filters; - Adjusting filters.treatValue function to return integer only if string can be converted to integer; --- lib/mapper/filters.js | 3 +-- test/unit/filters.spec.js | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/lib/mapper/filters.js b/lib/mapper/filters.js index dd5242d..d434fb4 100644 --- a/lib/mapper/filters.js +++ b/lib/mapper/filters.js @@ -48,8 +48,7 @@ function treatValue(value) { else if (value.includes('*')) return buildRegEx(value) else if (value.includes(':')) return getCompareOperator(value) else if (value === 'now') return normalizeDate(dateToString(new Date()), false) - else if (/^\d*$/.test(value) && (parseInt(value).toString().length !== value.length)) return value - else if (/^\d*$/.test(value)) return parseInt(value) + else if (parseInt(value).toString() === value) return parseInt(value) return value } diff --git a/test/unit/filters.spec.js b/test/unit/filters.spec.js index 19b73da..b0c3cf5 100644 --- a/test/unit/filters.spec.js +++ b/test/unit/filters.spec.js @@ -11,6 +11,24 @@ describe('QueryString: Filters', function () { }) }) + context('when query filters contains an integer with a leading zero', function () { + it('should return a JSON with filters params, keeping the leading zero of the number as string', function (done) { + const VALUE = '009' + const result = filter.filters({ value: VALUE }, default_options) + expect(result).to.have.property('value', VALUE) + done() + }) + }) + + context('when query filters contains an integer that exceeds max safe integer', function () { + it('should return a JSON with filters params containing the number as string', function (done) { + const VALUE = '9007199254740999' + const result = filter.filters({ value: VALUE }, default_options) + expect(result).to.have.property('value', VALUE) + done() + }) + }) + context('when query filters its a object', function () { it('should ignore the object param and returns another filters', function () { verify(filter.filters({job: {first: 'developer'}, name: 'lucas', age: '30'}, default_options)) From a7bafd8ab1569a748d96683aa15fae460660d922 Mon Sep 17 00:00:00 2001 From: Adson-Macedo Date: Tue, 30 Nov 2021 11:34:23 -0300 Subject: [PATCH 3/4] Updating version in package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 308473e..c621d59 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "query-strings-parser", - "version": "2.1.8", + "version": "2.1.9", "description": "Middleware to transform query strings in a format that is recognized by the MongoDB, MySQL and other databases...", "license": "MIT", "main": "index.js", From 956e4a0df500accbbd355c74292375344fceb1fc Mon Sep 17 00:00:00 2001 From: Adson-Macedo Date: Tue, 30 Nov 2021 11:49:58 -0300 Subject: [PATCH 4/4] Adding new contributor names in package.json. --- package.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index c621d59..62998cf 100644 --- a/package.json +++ b/package.json @@ -20,8 +20,10 @@ }, "author": "Lucas Rocha ", "contributors": [ + "Adson MacĂȘdo ", "Douglas Rafael ", - "Jefferson Sampaio " + "Jefferson Sampaio ", + "Lucas Barbosa " ], "keywords": [ "middleware",