Skip to content

Commit b7324f8

Browse files
committed
Better handling of errors when some properties aren't set.
1 parent 7f33a3e commit b7324f8

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

bl/netSuiteBl.js

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,26 +43,34 @@ function uploadFileToNetSuite(file) {
4343

4444
function hasNetSuiteError(custommessage, err, response) {
4545
if (err) {
46+
var get = function(obj, key) {
47+
return key.split(".").reduce(function(o, x) {
48+
return (typeof o == "undefined" || o === null) ? o : o[x];
49+
}, obj);
50+
};
51+
4652
var msg = custommessage;
4753
var items = [];
4854
if (response && response.body && response.body.error) {
4955
// The body of the response may contain a JSON object containing a NetSuite-specific
5056
// message. We'll parse and display that in addition to the HTTP message.
51-
var code = response.body.error.code;
52-
var nsMessage = JSON.parse(response.body.error.message);
57+
//if (response.headers.)
5358
items = [
5459
"NetSuite Error:",
55-
"Code: " + code,
56-
"Type: " + nsMessage.type,
57-
"Name: " + nsMessage.name,
58-
"Message: " + nsMessage.message,
59-
"Stack: " + nsMessage.stack.toString()
60+
"HTTP Status: " + get(err, 'status'),
61+
"HTTP Error: " + get(err, 'message'),
62+
"NS Error: " + get(response.body.error, 'code'),
63+
"NS Message: " + get(response.body.error, 'message'),
64+
"NS Type: " + get(response.body.error, 'message.type'),
65+
"NS Name: " + get(response.body.error, 'message.name'),
66+
"NS Stack: " + get(response.body.error, 'message.stack')
6067
];
6168
} else if (err.status && err.stack) {
6269
items = [
6370
"Other Error:",
64-
"Status: " + err.status,
65-
"Stack:" + err.stack
71+
"HTTP Status: " + get(err, 'status'),
72+
"HTTP Error: " + get(err, 'message'),
73+
"HTTP Stack:" + get(err, 'stack')
6674
];
6775
}
6876
var errormessage = msg + " " + items.join(" ");

0 commit comments

Comments
 (0)