mirror of
https://github.com/louislam/uptime-kuma.git
synced 2024-12-25 08:21:12 -06:00
Merge pull request #2748 from chakflying/feat/improve-err-code
Feat: Use error message to detect and set status code
This commit is contained in:
commit
42033c692f
@ -1,5 +1,5 @@
|
|||||||
let express = require("express");
|
let express = require("express");
|
||||||
const { allowDevAllOrigin, allowAllOrigin, percentageToColor, filterAndJoin, send403 } = require("../util-server");
|
const { allowDevAllOrigin, allowAllOrigin, percentageToColor, filterAndJoin, sendHttpError } = require("../util-server");
|
||||||
const { R } = require("redbean-node");
|
const { R } = require("redbean-node");
|
||||||
const apicache = require("../modules/apicache");
|
const apicache = require("../modules/apicache");
|
||||||
const Monitor = require("../model/monitor");
|
const Monitor = require("../model/monitor");
|
||||||
@ -175,7 +175,7 @@ router.get("/api/badge/:id/status", cache("5 minutes"), async (request, response
|
|||||||
response.type("image/svg+xml");
|
response.type("image/svg+xml");
|
||||||
response.send(svg);
|
response.send(svg);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
send403(response, error.message);
|
sendHttpError(response, error.message);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -242,7 +242,7 @@ router.get("/api/badge/:id/uptime/:duration?", cache("5 minutes"), async (reques
|
|||||||
response.type("image/svg+xml");
|
response.type("image/svg+xml");
|
||||||
response.send(svg);
|
response.send(svg);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
send403(response, error.message);
|
sendHttpError(response, error.message);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -303,7 +303,7 @@ router.get("/api/badge/:id/ping/:duration?", cache("5 minutes"), async (request,
|
|||||||
response.type("image/svg+xml");
|
response.type("image/svg+xml");
|
||||||
response.send(svg);
|
response.send(svg);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
send403(response, error.message);
|
sendHttpError(response, error.message);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -373,7 +373,7 @@ router.get("/api/badge/:id/avg-response/:duration?", cache("5 minutes"), async (
|
|||||||
response.type("image/svg+xml");
|
response.type("image/svg+xml");
|
||||||
response.send(svg);
|
response.send(svg);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
send403(response, error.message);
|
sendHttpError(response, error.message);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -464,7 +464,7 @@ router.get("/api/badge/:id/cert-exp", cache("5 minutes"), async (request, respon
|
|||||||
response.type("image/svg+xml");
|
response.type("image/svg+xml");
|
||||||
response.send(svg);
|
response.send(svg);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
send403(response, error.message);
|
sendHttpError(response, error.message);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -536,7 +536,7 @@ router.get("/api/badge/:id/response", cache("5 minutes"), async (request, respon
|
|||||||
response.type("image/svg+xml");
|
response.type("image/svg+xml");
|
||||||
response.send(svg);
|
response.send(svg);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
send403(response, error.message);
|
sendHttpError(response, error.message);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@ let express = require("express");
|
|||||||
const apicache = require("../modules/apicache");
|
const apicache = require("../modules/apicache");
|
||||||
const { UptimeKumaServer } = require("../uptime-kuma-server");
|
const { UptimeKumaServer } = require("../uptime-kuma-server");
|
||||||
const StatusPage = require("../model/status_page");
|
const StatusPage = require("../model/status_page");
|
||||||
const { allowDevAllOrigin, send403 } = require("../util-server");
|
const { allowDevAllOrigin, sendHttpError } = require("../util-server");
|
||||||
const { R } = require("redbean-node");
|
const { R } = require("redbean-node");
|
||||||
const Monitor = require("../model/monitor");
|
const Monitor = require("../model/monitor");
|
||||||
|
|
||||||
@ -44,10 +44,7 @@ router.get("/api/status-page/:slug", cache("5 minutes"), async (request, respons
|
|||||||
let statusPageData = await StatusPage.getStatusPageData(statusPage);
|
let statusPageData = await StatusPage.getStatusPageData(statusPage);
|
||||||
|
|
||||||
if (!statusPageData) {
|
if (!statusPageData) {
|
||||||
response.statusCode = 404;
|
sendHttpError(response, "Not Found");
|
||||||
response.json({
|
|
||||||
msg: "Not Found"
|
|
||||||
});
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,7 +52,7 @@ router.get("/api/status-page/:slug", cache("5 minutes"), async (request, respons
|
|||||||
response.json(statusPageData);
|
response.json(statusPageData);
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
send403(response, error.message);
|
sendHttpError(response, error.message);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -103,7 +100,7 @@ router.get("/api/status-page/heartbeat/:slug", cache("1 minutes"), async (reques
|
|||||||
});
|
});
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
send403(response, error.message);
|
sendHttpError(response, error.message);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -119,10 +116,7 @@ router.get("/api/status-page/:slug/manifest.json", cache("1440 minutes"), async
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
if (!statusPage) {
|
if (!statusPage) {
|
||||||
response.statusCode = 404;
|
sendHttpError(response, "Not Found");
|
||||||
response.json({
|
|
||||||
msg: "Not Found"
|
|
||||||
});
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -141,7 +135,7 @@ router.get("/api/status-page/:slug/manifest.json", cache("1440 minutes"), async
|
|||||||
});
|
});
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
send403(response, error.message);
|
sendHttpError(response, error.message);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -739,15 +739,27 @@ exports.filterAndJoin = (parts, connector = "") => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Send a 403 response
|
* Send an Error response
|
||||||
* @param {Object} res Express response object
|
* @param {Object} res Express response object
|
||||||
* @param {string} [msg=""] Message to send
|
* @param {string} [msg=""] Message to send
|
||||||
*/
|
*/
|
||||||
module.exports.send403 = (res, msg = "") => {
|
module.exports.sendHttpError = (res, msg = "") => {
|
||||||
|
if (msg.includes("SQLITE_BUSY") || msg.includes("SQLITE_LOCKED")) {
|
||||||
|
res.status(503).json({
|
||||||
|
"status": "fail",
|
||||||
|
"msg": msg,
|
||||||
|
});
|
||||||
|
} else if (msg.toLowerCase().includes("not found")) {
|
||||||
|
res.status(404).json({
|
||||||
|
"status": "fail",
|
||||||
|
"msg": msg,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
res.status(403).json({
|
res.status(403).json({
|
||||||
"status": "fail",
|
"status": "fail",
|
||||||
"msg": msg,
|
"msg": msg,
|
||||||
});
|
});
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
function timeObjectConvertTimezone(obj, timezone, timeObjectToUTC = true) {
|
function timeObjectConvertTimezone(obj, timezone, timeObjectToUTC = true) {
|
||||||
|
Loading…
Reference in New Issue
Block a user