2022-02-23 21:55:13 +01:00
|
|
|
const express = require("express");
|
|
|
|
const fs = require("fs");
|
|
|
|
const bodyParser = require("body-parser");
|
|
|
|
|
|
|
|
const app = express();
|
|
|
|
|
|
|
|
app.use(express.static("static"));
|
|
|
|
app.use(express.static("node_modules"));
|
|
|
|
|
|
|
|
app.use(bodyParser.json());
|
|
|
|
app.use(
|
|
|
|
bodyParser.urlencoded({
|
|
|
|
// to support URL-encoded bodies
|
|
|
|
extended: true,
|
|
|
|
})
|
|
|
|
);
|
|
|
|
|
|
|
|
currentState = {
|
|
|
|
mode: "clock",
|
2022-02-24 19:11:13 +01:00
|
|
|
countdownGoal: new Date().getTime(),
|
|
|
|
showMilliSeconds: true,
|
2022-02-24 20:17:24 +01:00
|
|
|
defaultFullScreen: true,
|
|
|
|
timeAmountInital: 0,
|
|
|
|
timerRunState: true,
|
|
|
|
pauseMoment: 0
|
2022-02-23 21:55:13 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
app.get("/", function (req, res) {
|
|
|
|
const data = fs.readFileSync("templates/adminPanel.html", "utf8");
|
|
|
|
res.send(data);
|
|
|
|
});
|
|
|
|
|
|
|
|
app.get("/timer", function (req, res) {
|
|
|
|
const data = fs.readFileSync("templates/timerPage.html", "utf8");
|
|
|
|
res.send(data);
|
|
|
|
});
|
|
|
|
|
|
|
|
app.get("/api/v1/data", function (req, res) {
|
|
|
|
res.json(currentState);
|
|
|
|
});
|
|
|
|
|
|
|
|
app.get("/api/v1/set/mode", function (req, res) {
|
|
|
|
currentState.mode = req.query.mode;
|
|
|
|
res.json({ status: "ok" });
|
|
|
|
});
|
|
|
|
|
2022-02-24 19:11:13 +01:00
|
|
|
app.get("/api/v1/set/showMillis", function (req, res) {
|
|
|
|
currentState.showMilliSeconds = (req.query.show === 'true');
|
|
|
|
res.json({ status: "ok" });
|
|
|
|
});
|
|
|
|
|
2022-02-23 22:17:12 +01:00
|
|
|
app.get("/api/v1/set/timerGoal", function (req, res) {
|
2022-02-24 19:11:13 +01:00
|
|
|
currentState.countdownGoal = new Date(parseInt(req.query.time)).getTime();
|
2022-02-23 21:55:13 +01:00
|
|
|
res.json({ status: "ok" });
|
|
|
|
});
|
|
|
|
|
2022-02-24 19:11:13 +01:00
|
|
|
app.get("/api/v1/set/addMillisToTimer", function (req, res) {
|
2022-02-24 20:17:24 +01:00
|
|
|
currentState.timeAmountInital = req.query.time;
|
2022-02-24 19:11:13 +01:00
|
|
|
currentState.countdownGoal = new Date().getTime() + parseInt(req.query.time)
|
|
|
|
res.json({ status: "ok" });
|
|
|
|
});
|
2022-02-23 21:55:13 +01:00
|
|
|
|
2022-02-24 20:17:24 +01:00
|
|
|
app.get("/api/v1/ctrl/timer/pause", function (req, res) {
|
|
|
|
currentState.timerRunState = false;
|
|
|
|
currentState.pauseMoment = new Date().getTime();
|
|
|
|
res.json({ status: "ok" });
|
|
|
|
});
|
|
|
|
|
|
|
|
app.get("/api/v1/ctrl/timer/play", function (req, res) {
|
|
|
|
currentState.timerRunState = true
|
|
|
|
currentState.countdownGoal += new Date().getTime() - currentState.pauseMoment;
|
|
|
|
res.json({ status: "ok" });
|
|
|
|
});
|
|
|
|
|
|
|
|
app.get("/api/v1/ctrl/timer/restart", function (req, res) {
|
|
|
|
currentState.countdownGoal = new Date().getTime() + parseInt(currentState.timeAmountInital)
|
|
|
|
res.json({ status: "ok" });
|
|
|
|
});
|
|
|
|
|
2022-02-23 22:17:12 +01:00
|
|
|
app.listen(3005);
|