8000 Improve Orchestrator response handling · DHLRPAadmin/orchestrator-nodejs@49bfe65 · GitHub
[go: up one dir, main page]

Skip to content

Commit 49bfe65

Browse files
committed
Improve Orchestrator response handling
1 parent 81706ab commit 49bfe65

File tree

1 file changed

+18
-11
lines changed

1 file changed

+18
-11
lines changed

lib/restHelper.js

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -56,23 +56,30 @@ function reqEndHandler(response, buffers, cb) {
5656
/** @type {number|null} */
5757
var statusCode = response.statusCode;
5858
/** @type {Error|{statusCode: number|null}} */
59-
var err;
59+
var err = null;
60+
/** @type {*} */
61+
var result = null;
6062

6163
if (cb === undefined) {
6264
return;
6365
}
6466
dataString = Buffer.concat(buffers).toString('utf-8');
65-
try {
66-
if (statusCode >= 300) {
67-
err = new Error("Unexpected status code: " + statusCode);
68-
err.statusCode = statusCode;
69-
cb(err, JSON.parse(dataString));
70-
} else {
71-
cb(undefined, JSON.parse(dataString));
67+
if (dataString.length > 0) {
68+
try {
69+
result = JSON.parse(dataString);
70+
} catch (e) {
71+
err = e;
72+
e.rawData = dataString;
7273
}
73-
} catch (e) {
74-
e.statusCode = statusCode;
75-
cb(e, {rawData: dataString, statusCode: statusCode});
74+
}
75+
if (err === null && statusCode >= 300) {
76+
err = new Error("Unexpected status code: " + statusCode);
77+
}
78+
if (err === null) {
79+
cb(undefined, result);
80+
} else {
81+
err.statusCode = statusCode;
82+
cb(err, result);
7683
}
7784
};
7885
}

0 commit comments

Comments
 (0)
0