pull/1927/head
Gero Gerke 2 years ago
parent 3ac752246d
commit 80e7400185

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

@ -73,8 +73,9 @@ class StatusPage extends BeanModel {
* Get all status page data in one call * Get all status page data in one call
* @param {StatusPage} statusPage * @param {StatusPage} statusPage
* @param {boolean} includeStatus whether each monitor should include the status of the monitor ("up" or "down") * @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 // Incident
let incident = await R.findOne("incident", " pin = 1 AND active = 1 AND status_page_id = ? ", [ let incident = await R.findOne("incident", " pin = 1 AND active = 1 AND status_page_id = ? ", [
statusPage.id, statusPage.id,
@ -97,9 +98,16 @@ class StatusPage extends BeanModel {
publicGroupList.push(monitorGroup); publicGroupList.push(monitorGroup);
} }
let config = {};
if (includeConfig) {
config = {
config: await statusPage.toPublicJSON()
}
}
// Response // Response
return { return {
config: await statusPage.toPublicJSON(), ...config,
incident, incident,
publicGroupList publicGroupList
}; };

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

Loading…
Cancel
Save