This commit is contained in:
Gero Gerke 2022-07-26 13:47:23 +02:00
parent 3ac752246d
commit 80e7400185
3 changed files with 13 additions and 5 deletions

View file

@ -9,12 +9,12 @@ class Group extends BeanModel {
* @param {boolean} [showTags=false] Should the JSON include monitor tags
* @returns {Object}
*/
async toPublicJSON(showTags = false) {
async toPublicJSON(showTags = false, showStatus = false) {
let monitorBeanList = await this.getMonitorList();
let monitorList = [];
for (let bean of monitorBeanList) {
monitorList.push(await bean.toPublicJSON(showTags));
monitorList.push(await bean.toPublicJSON(showTags, showStatus));
}
return {

View file

@ -73,8 +73,9 @@ class StatusPage extends BeanModel {
* Get all status page data in one call
* @param {StatusPage} statusPage
* @param {boolean} includeStatus whether each monitor should include the status of the monitor ("up" or "down")
* @param {boolean} includeConfig whether the config for the status paghe should be included in the returned JSON
*/
static async getStatusPageData(statusPage, includeStatus = false) {
static async getStatusPageData(statusPage, includeStatus = false, includeConfig = true) {
// Incident
let incident = await R.findOne("incident", " pin = 1 AND active = 1 AND status_page_id = ? ", [
statusPage.id,
@ -97,9 +98,16 @@ class StatusPage extends BeanModel {
publicGroupList.push(monitorGroup);
}
let config = {};
if (includeConfig) {
config = {
config: await statusPage.toPublicJSON()
}
}
// Response
return {
config: await statusPage.toPublicJSON(),
...config,
incident,
publicGroupList
};

View file

@ -41,7 +41,7 @@ router.get("/api/status-page/:slug/summary", cache("5 minutes"), async (request,
return null;
}
let statusPageData = await StatusPage.getStatusPageData(statusPage, true);
let statusPageData = await StatusPage.getStatusPageData(statusPage, true, false);
if (!statusPageData) {
response.statusCode = 404;