aboutsummaryrefslogtreecommitdiff
path: root/174bg/database/volumes/pocketbase/pb_hooks/heartbeat.pb.js
blob: b7d385ddb78c3b4c4dfc5236dd27fb1a30f65c49 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
routerAdd("GET", "/heartbeat", (e) => {
    try {
        const result = new DynamicModel({
            "value": nullString(),
        })

        let dateNow = Date.now();

        try {
            $app.db()
                .newQuery(`SELECT value FROM key_value_store WHERE key = "heartbeat"`)
                .one(result);
        } catch (error) {
            return e.json(404, { "error": "Heartbeat not found" });
        }

        let heartbeatValue = parseInt(result.value);
        let timeDifference = dateNow - heartbeatValue;
        let withinThreshold = timeDifference <= 60000; // 60 seconds threshold

        return e.json(200, { "timeDifference": timeDifference, "withinThreshold": withinThreshold });
    } catch (error) {
        return e.json(500, { "error": "Internal Server Error", "details": error.message });
    }
});

cronAdd("heartbeat", "* * * * *", () => {
    $app.db().newQuery(`UPDATE key_value_store SET value = ${Date.now()} WHERE key = "heartbeat"`).execute()
})