[WIP] Handle timezone offset for timeRange

This commit is contained in:
Louis Lam 2022-09-25 19:38:28 +08:00
parent f11dfc8f43
commit 3f63cb246b
7 changed files with 110 additions and 32 deletions

View file

@ -5,6 +5,11 @@ const apicache = require("../modules/apicache");
const { UptimeKumaServer } = require("../uptime-kuma-server");
const Maintenance = require("../model/maintenance");
const server = UptimeKumaServer.getInstance();
const dayjs = require("dayjs");
const utc = require("dayjs/plugin/utc");
let timezone = require("dayjs/plugin/timezone");
dayjs.extend(utc);
dayjs.extend(timezone);
/**
* Handlers for Maintenance
@ -12,13 +17,13 @@ const server = UptimeKumaServer.getInstance();
*/
module.exports.maintenanceSocketHandler = (socket) => {
// Add a new maintenance
socket.on("addMaintenance", async (maintenance, callback) => {
socket.on("addMaintenance", async (maintenance, timezone, callback) => {
try {
checkLogin(socket);
log.debug("maintenance", maintenance);
let bean = Maintenance.jsonToBean(R.dispense("maintenance"), maintenance);
let bean = Maintenance.jsonToBean(R.dispense("maintenance"), maintenance, timezone);
bean.user_id = socket.userID;
let maintenanceID = await R.store(bean);
@ -39,7 +44,7 @@ module.exports.maintenanceSocketHandler = (socket) => {
});
// Edit a maintenance
socket.on("editMaintenance", async (maintenance, callback) => {
socket.on("editMaintenance", async (maintenance, timezone, callback) => {
try {
checkLogin(socket);
@ -49,7 +54,7 @@ module.exports.maintenanceSocketHandler = (socket) => {
throw new Error("Permission denied.");
}
Maintenance.jsonToBean(bean, maintenance);
Maintenance.jsonToBean(bean, maintenance, timezone);
await R.store(bean);
@ -138,7 +143,7 @@ module.exports.maintenanceSocketHandler = (socket) => {
}
});
socket.on("getMaintenance", async (maintenanceID, callback) => {
socket.on("getMaintenance", async (maintenanceID, timezone, callback) => {
try {
checkLogin(socket);
@ -151,7 +156,7 @@ module.exports.maintenanceSocketHandler = (socket) => {
callback({
ok: true,
maintenance: await bean.toJSON(),
maintenance: await bean.toJSON(timezone),
});
} catch (e) {