fritzfix/libs/draytek.js
2024-06-12 10:26:04 +02:00

46 lines
1.1 KiB
JavaScript

const logger = require("./logger.js");
const timediff = require("./timediff.js");
async function isOnline() {
const url = global.config.draytek;
let online = false;
logger.info("checking if draytek is responding on url '" + url + "'...");
const timestamp = Date.now();
try {
const controller = new AbortController();
const timeoutId = setTimeout(async function () {
logger.debug(
"request to draytek timed out after " +
timediff.inSeconds(timestamp) +
" seconds!"
);
controller.abort();
}, global.config.timeouts.request);
const result = await fetch(url, {
signal: controller.signal,
});
clearTimeout(timeoutId);
logger.info(
"draytek responded with status code '" +
result.status +
"' after " +
timediff.inSeconds(timestamp) +
" seconds!"
);
online = result.status === 200;
} catch (err) {
if (err.name !== "AbortError") {
logger.error(
"encountered an error checking if draytek is responding (" + err + ")"
);
}
}
return online;
}
// exports
module.exports = {
isOnline,
};