From f178476dfaae2567c8934ef0f36393ef8bed1eee Mon Sep 17 00:00:00 2001 From: Arpit Agarwal Date: Wed, 19 Apr 2017 19:37:52 +0530 Subject: [PATCH 1/6] Update main.js --- lib/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/main.js b/lib/main.js index 69ace29..587f3fe 100644 --- a/lib/main.js +++ b/lib/main.js @@ -32,7 +32,7 @@ module.exports = function (api_key,api_secret, options) { method = method.toLowerCase(); if( method === 'get'){ var request_data = encodeURIComponent(data); - var url = normalizeUrl(base_url + path + '?q=' + request_data); + var url = normalizeUrl(base_url + path) + '?q=' + request_data; securer.get(url, null, null, function(err, data, result) { From 58ce1ffcfe57b86fe95c8ed50e652c01b1670e26 Mon Sep 17 00:00:00 2001 From: Arpit Agarwal Date: Tue, 25 Apr 2017 11:03:27 +0530 Subject: [PATCH 2/6] Read userAgent from options --- lib/main.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/main.js b/lib/main.js index 587f3fe..a8be637 100644 --- a/lib/main.js +++ b/lib/main.js @@ -18,7 +18,10 @@ module.exports = function (api_key,api_secret, options) { var base_url = options.base_url || 'https://api.semantics3.com/v1/'; var userAgent = 'Semantics3 Node.js Lib/' + VERSION; - + if (options.userAgent) { + userAgent = options.userAgent; + } + var customHeaders = {"Accept" : "*/*", "Connection" : "close", "User-Agent" : userAgent}; var securer = new OAuth(null, null, api_key, api_secret,'1.0', null,'HMAC-SHA1',32,customHeaders); From d1017106a5658bb2c10ea0a3488ef85f3ada98a1 Mon Sep 17 00:00:00 2001 From: Arpit Agarwal Date: Thu, 4 May 2017 14:52:26 +0530 Subject: [PATCH 3/6] safeguard data_query[endpoint] in run_query https://github.com/Semantics3/api-dashboard/issues/6 --- lib/main.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/main.js b/lib/main.js index a8be637..7984f98 100644 --- a/lib/main.js +++ b/lib/main.js @@ -63,7 +63,8 @@ module.exports = function (api_key,api_secret, options) { function run_query(endpoint) { var queryObj = {}; - + data_query[endpoint] = data_query[endpoint] || {}; + if(arguments.length < 2) { throw new Error("Insufficient parameters provided"); } From 36e9eff7f5254832f3e40d3b21c8bf62df65084e Mon Sep 17 00:00:00 2001 From: Arpit Agarwal <93arpit@gmail.com> Date: Wed, 12 Jul 2017 21:53:06 +0530 Subject: [PATCH 4/6] catch json parse exception --- lib/main.js | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/lib/main.js b/lib/main.js index 7984f98..1598944 100644 --- a/lib/main.js +++ b/lib/main.js @@ -21,7 +21,7 @@ module.exports = function (api_key,api_secret, options) { if (options.userAgent) { userAgent = options.userAgent; } - + var customHeaders = {"Accept" : "*/*", "Connection" : "close", "User-Agent" : userAgent}; var securer = new OAuth(null, null, api_key, api_secret,'1.0', null,'HMAC-SHA1',32,customHeaders); @@ -36,27 +36,45 @@ module.exports = function (api_key,api_secret, options) { if( method === 'get'){ var request_data = encodeURIComponent(data); var url = normalizeUrl(base_url + path) + '?q=' + request_data; - + securer.get(url, null, null, function(err, data, result) { - if(!err) { query_result = JSON.parse(data); } - callback(err,data); + if(!err) { + try { + query_result = JSON.parse(data); + callback(err,data); + } catch(e) { + callback('Invalid JSON'); + } + } }); } else if( method == 'delete' ){ var url = normalizeUrl(base_url + path); securer.delete(url, null, null, function(err, data, result) { - if(!err) { query_result = JSON.parse(data); } - callback(err,data); + if(!err) { + try { + query_result = JSON.parse(data); + callback(err,data); + } catch(e) { + callback('Invalid JSON'); + } + } }); } else{ var url = normalizeUrl(base_url + path); securer[method](url, null, null, data, "application/json", function(err, data, result) { - if(!err) { query_result = JSON.parse(data); } - callback(err,data); + if(!err) { + try { + query_result = JSON.parse(data); + callback(err,data); + } catch(e) { + callback('Invalid JSON'); + } + } }); } } @@ -64,7 +82,7 @@ module.exports = function (api_key,api_secret, options) { function run_query(endpoint) { var queryObj = {}; data_query[endpoint] = data_query[endpoint] || {}; - + if(arguments.length < 2) { throw new Error("Insufficient parameters provided"); } @@ -90,7 +108,7 @@ module.exports = function (api_key,api_secret, options) { else if(arguments.length == 4){ data = arguments[1]; method = arguments[2]; - } + } if(typeof method === 'undefined') method = 'GET'; From b75ab20abb01e53efc406bbf3958e914d083f63b Mon Sep 17 00:00:00 2001 From: Arpit Agarwal <93arpit@gmail.com> Date: Wed, 12 Jul 2017 23:08:05 +0530 Subject: [PATCH 5/6] json parse in try-catch at another place --- lib/main.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/main.js b/lib/main.js index 1598944..99a8ee3 100644 --- a/lib/main.js +++ b/lib/main.js @@ -117,7 +117,12 @@ module.exports = function (api_key,api_secret, options) { } else { if(typeof data === 'string') { - _request(method, endpoint,JSON.parse(data),callback); + try { + var parsed_data = JSON.parse(data); + _request(method, endpoint, parsed_data, callback); + } catch (e) { + callback("Invalid JSON"); + } } else if(typeof data === 'object') { _request(method, endpoint,data,callback); From 970b2b7cee7ac435d0d6b91d93bfa835ba765289 Mon Sep 17 00:00:00 2001 From: Amarnath Ravikumar Date: Fri, 14 Jul 2017 01:43:14 +0530 Subject: [PATCH 6/6] rolled back a previous commit --- lib/main.js | 30 ++++++------------------------ 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/lib/main.js b/lib/main.js index 99a8ee3..6c82195 100644 --- a/lib/main.js +++ b/lib/main.js @@ -39,42 +39,24 @@ module.exports = function (api_key,api_secret, options) { securer.get(url, null, null, function(err, data, result) { - if(!err) { - try { - query_result = JSON.parse(data); - callback(err,data); - } catch(e) { - callback('Invalid JSON'); - } - } + if(!err) { query_result = JSON.parse(data); } + callback(err,data); }); } else if( method == 'delete' ){ var url = normalizeUrl(base_url + path); securer.delete(url, null, null, function(err, data, result) { - if(!err) { - try { - query_result = JSON.parse(data); - callback(err,data); - } catch(e) { - callback('Invalid JSON'); - } - } + if(!err) { query_result = JSON.parse(data); } + callback(err,data); }); } else{ var url = normalizeUrl(base_url + path); securer[method](url, null, null, data, "application/json", function(err, data, result) { - if(!err) { - try { - query_result = JSON.parse(data); - callback(err,data); - } catch(e) { - callback('Invalid JSON'); - } - } + if(!err) { query_result = JSON.parse(data); } + callback(err, data); }); } }