From cd632090859ef5890a6526c0b263bb48df5e7fc1 Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Thu, 17 Sep 2015 13:48:50 -0400 Subject: [PATCH] Error on multiple ids parameters instead of warning --- sanitiser/_ids.js | 10 ++++++---- test/unit/sanitiser/place.js | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/sanitiser/_ids.js b/sanitiser/_ids.js index 2f497dbe..dae3a4b1 100644 --- a/sanitiser/_ids.js +++ b/sanitiser/_ids.js @@ -18,11 +18,13 @@ function sanitize( raw, clean ){ // 'raw.ids' can be an array if ids is specified multiple times // see https://github.com/pelias/api/issues/272 - var rawIdsString; if (check.array( raw.ids )) { - rawIdsString = raw.ids[0]; - messages.warnings.push( '`ids` parameter specified multiple times. Using first value.' ); - } else if (check.unemptyString( raw.ids )) { + messages.errors.push( '`ids` parameter specified multiple times.' ); + return messages; + } + + var rawIdsString; + if (check.unemptyString( raw.ids )) { rawIdsString = raw.ids; } else { rawIdsString = ''; diff --git a/test/unit/sanitiser/place.js b/test/unit/sanitiser/place.js index 26d85bac..1aa01393 100644 --- a/test/unit/sanitiser/place.js +++ b/test/unit/sanitiser/place.js @@ -113,8 +113,8 @@ module.exports.tests.array_of_ids = function(test, common) { test('array of ids sent by queryparser', function(t) { var req = { query: { ids: ['geoname:2', 'oswmay:4'] } }; sanitize(req, function() { - t.deepEqual( req.warnings, ['`ids` parameter specified multiple times. Using first value.'], 'warning sent' ); - t.deepEqual( req.clean.ids, [{ id: '2', type: 'geoname' }], 'only first value used in clean' ); + t.deepEqual( req.errors, ['`ids` parameter specified multiple times.'], 'error sent' ); + t.deepEqual( req.clean.ids, undefined, 'response is empty due to error' ); t.end(); }); });