From 106f1ec222d8ee919999715027902afeabca2784 Mon Sep 17 00:00:00 2001 From: Jon Helge Stensrud Date: Thu, 10 Nov 2016 12:19:45 +0100 Subject: [PATCH 1/2] Handle unparseable JSON response for API requests --- lib/api-request.js | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/lib/api-request.js b/lib/api-request.js index a1dbad4..7898bdd 100644 --- a/lib/api-request.js +++ b/lib/api-request.js @@ -10,9 +10,23 @@ module.exports = { return; } if (response.statusCode >= 200 && response.statusCode < 300) { - cb(null, JSON.parse(body)); + var json; + try { + json = JSON.parse(body); + } catch (ex) { + return cb(new Error('Unparseable response')); + } + cb(null, json); } else { - cb(new Error(JSON.parse(body).error.message)); + var json; + try { + json = JSON.parse(body); + } catch (ex) { + return cb(new Error('Unparseable response')); + } + if (!json&&!json.error&&!json.error.message) + return cb(new Error('Unknown error')); + cb(new Error(json.error.message)); } } const requestOptions = { From 67da0cdb8b68e14dd4329d81442b8398f3321104 Mon Sep 17 00:00:00 2001 From: Jon Helge Stensrud Date: Thu, 10 Nov 2016 12:32:25 +0100 Subject: [PATCH 2/2] Update api-request.js --- lib/api-request.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/api-request.js b/lib/api-request.js index 7898bdd..8d2f8ce 100644 --- a/lib/api-request.js +++ b/lib/api-request.js @@ -24,7 +24,7 @@ module.exports = { } catch (ex) { return cb(new Error('Unparseable response')); } - if (!json&&!json.error&&!json.error.message) + if (!json||!json.error||!json.error.message) return cb(new Error('Unknown error')); cb(new Error(json.error.message)); }