From 0fbea08df793bf7f691e48f0e03203ca9142cd6e Mon Sep 17 00:00:00 2001 From: "Alex Pooley (@zuedev)" Date: Fri, 24 Jul 2026 19:50:03 +0100 Subject: rename main to heartbeat --- .../volumes/pocketbase/pb_hooks/heartbeat.pb.js | 29 ++++++++++++++++++++++ .../volumes/pocketbase/pb_hooks/main.pb.js | 29 ---------------------- 2 files changed, 29 insertions(+), 29 deletions(-) create mode 100644 174bg/database/volumes/pocketbase/pb_hooks/heartbeat.pb.js delete mode 100644 174bg/database/volumes/pocketbase/pb_hooks/main.pb.js (limited to '174bg/database') diff --git a/174bg/database/volumes/pocketbase/pb_hooks/heartbeat.pb.js b/174bg/database/volumes/pocketbase/pb_hooks/heartbeat.pb.js new file mode 100644 index 0000000..b7d385d --- /dev/null +++ b/174bg/database/volumes/pocketbase/pb_hooks/heartbeat.pb.js @@ -0,0 +1,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() +}) \ No newline at end of file diff --git a/174bg/database/volumes/pocketbase/pb_hooks/main.pb.js b/174bg/database/volumes/pocketbase/pb_hooks/main.pb.js deleted file mode 100644 index b7d385d..0000000 --- a/174bg/database/volumes/pocketbase/pb_hooks/main.pb.js +++ /dev/null @@ -1,29 +0,0 @@ -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() -}) \ No newline at end of file -- cgit v1.2.3