improve sync error logging

This commit is contained in:
zadam 2023-10-19 00:13:11 +02:00
parent 5b2ba3646d
commit 67a12d3c4d

View File

@ -58,10 +58,6 @@ function exec(opts) {
request.on('error', err => reject(generateError(opts, err)));
request.on('response', response => {
if (![200, 201, 204].includes(response.statusCode)) {
reject(generateError(opts, `${response.statusCode} ${response.statusMessage}`));
}
if (opts.cookieJar && response.headers['set-cookie']) {
opts.cookieJar.header = response.headers['set-cookie'];
}
@ -71,15 +67,28 @@ function exec(opts) {
response.on('data', chunk => responseStr += chunk);
response.on('end', () => {
try {
const jsonObj = responseStr.trim() ? JSON.parse(responseStr) : null;
if ([200, 201, 204].includes(response.statusCode)) {
try {
const jsonObj = responseStr.trim() ? JSON.parse(responseStr) : null;
resolve(jsonObj);
}
catch (e) {
log.error(`Failed to deserialize sync response: ${responseStr}`);
resolve(jsonObj);
} catch (e) {
log.error(`Failed to deserialize sync response: ${responseStr}`);
reject(generateError(opts, e.message));
reject(generateError(opts, e.message));
}
} else {
let errorMessage;
try {
const jsonObj = JSON.parse(responseStr);
errorMessage = jsonObj?.message || '';
} catch (e) {
errorMessage = responseStr.substr(0, Math.min(responseStr.length, 100));
}
reject(generateError(opts, `${response.statusCode} ${response.statusMessage} ${errorMessage}`));
}
});
});