api: safer check for JSON errors. (#4188)

This commit is contained in:
Peter Hedenskog 2024-06-17 16:22:15 +02:00 committed by GitHub
parent f85bc86f5e
commit 54fba35ec6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 24 additions and 7 deletions

View File

@ -24,13 +24,21 @@ export async function addTest(hostname, options) {
let data = [];
res.on('data', chunk => data.push(chunk));
res.on('end', () => {
return res.statusCode === 200
? resolve(Buffer.concat(data).toString('utf8'))
: reject(JSON.parse(Buffer.concat(data).toString('utf8')));
if (res.statusCode === 200) {
return resolve(Buffer.concat(data).toString('utf8'));
} else {
try {
return reject(JSON.parse(Buffer.concat(data).toString('utf8')));
} catch {
return reject({
message:
'Could parse result:' + Buffer.concat(data).toString('utf8')
});
}
}
});
});
request.on('error', error => {
console.log('onERror');
reject({ message: error.toString() });
});
request.write(JSON.stringify(postData));
@ -69,9 +77,18 @@ export async function get(testId, hostname, options) {
});
res.on('end', () => {
return res.statusCode === 200
? resolve(JSON.parse(Buffer.concat(data).toString('utf8')))
: reject(JSON.parse(Buffer.concat(data).toString('utf8')));
if (res.statusCode === 200) {
return resolve(JSON.parse(Buffer.concat(data).toString('utf8')));
} else {
try {
return reject(JSON.parse(Buffer.concat(data).toString('utf8')));
} catch {
return reject({
message:
'Could parse result:' + Buffer.concat(data).toString('utf8')
});
}
}
});
})
.on('error', () => {