mirror of
https://github.com/louislam/uptime-kuma.git
synced 2025-08-03 03:56:18 -04:00
[status page] implement rest api for heartbeat
This commit is contained in:
parent
6350c43cc3
commit
7ee98d989c
5 changed files with 67 additions and 38 deletions
|
@ -38,9 +38,15 @@ router.get("/api/status-page/incident", async (_, response) => {
|
|||
try {
|
||||
await checkPublished();
|
||||
|
||||
let incident = await R.findOne("incident", " pin = 1 AND active = 1");
|
||||
|
||||
if (incident) {
|
||||
incident = incident.toPublicJSON();
|
||||
}
|
||||
|
||||
response.json({
|
||||
ok: true,
|
||||
incident: (await R.findOne("incident", " pin = 1 AND active = 1")).toPublicJSON(),
|
||||
incident,
|
||||
});
|
||||
|
||||
} catch (error) {
|
||||
|
@ -56,7 +62,7 @@ router.get("/api/status-page/monitor-list", async (_request, response) => {
|
|||
try {
|
||||
await checkPublished();
|
||||
const publicGroupList = [];
|
||||
let list = await R.find("group", " public = 1 ORDER BY weight, name ");
|
||||
let list = await R.find("group", " public = 1 ORDER BY weight ");
|
||||
|
||||
for (let groupBean of list) {
|
||||
publicGroupList.push(await groupBean.toPublicJSON());
|
||||
|
@ -76,16 +82,30 @@ router.get("/api/status-page/heartbeat", async (_request, response) => {
|
|||
try {
|
||||
await checkPublished();
|
||||
|
||||
const monitorList = {};
|
||||
let list = await R.find("", " ", [
|
||||
]);
|
||||
let heartbeatList = {};
|
||||
|
||||
for (let monitor of list) {
|
||||
monitorList[monitor.id] = await monitor.toJSON();
|
||||
let monitorIDList = await R.getCol(`
|
||||
SELECT monitor_group.monitor_id FROM monitor_group, \`group\`
|
||||
WHERE monitor_group.group_id = \`group\`.id
|
||||
AND public = 1
|
||||
`);
|
||||
|
||||
for (let monitorID of monitorIDList) {
|
||||
let list = await R.getAll(`
|
||||
SELECT * FROM heartbeat
|
||||
WHERE monitor_id = ?
|
||||
ORDER BY time DESC
|
||||
LIMIT 100
|
||||
`, [
|
||||
monitorID,
|
||||
]);
|
||||
|
||||
list = R.convertToBeans("heartbeat", list);
|
||||
heartbeatList[monitorID] = list.reverse().map(row => row.toPublicJSON());
|
||||
}
|
||||
|
||||
response.json({
|
||||
monitorList: monitorList,
|
||||
heartbeatList,
|
||||
});
|
||||
|
||||
} catch (error) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue