const { checkLogin } = require("../util-server"); const { UptimeCalculator } = require("../uptime-calculator"); const { log } = require("../../src/util"); module.exports.chartSocketHandler = (socket) => { socket.on("getMonitorChartData", async (monitorID, period, callback) => { try { checkLogin(socket); log.debug("monitor", `Get Monitor Chart Data: ${monitorID} User ID: ${socket.userID}`); if (period == null) { throw new Error("Invalid period."); } let uptimeCalculator = await UptimeCalculator.getUptimeCalculator(monitorID); let data; if (period <= 24) { data = uptimeCalculator.getDataArray(period * 60, "minute"); } else if (period <= 720) { data = uptimeCalculator.getDataArray(period, "hour"); } else { data = uptimeCalculator.getDataArray(period / 24, "day"); } callback({ ok: true, data, }); } catch (e) { callback({ ok: false, msg: e.message, }); } }); };