From d65a5d001a58ed3bff553fba2c5c169ce10f586e Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Mon, 27 Jan 2025 09:36:39 -0800 Subject: [PATCH 1/4] Add status param to getChecks requests --- Client/src/Utils/NetworkService.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Client/src/Utils/NetworkService.js b/Client/src/Utils/NetworkService.js index c73890218..d040ff2fd 100644 --- a/Client/src/Utils/NetworkService.js +++ b/Client/src/Utils/NetworkService.js @@ -614,6 +614,7 @@ class NetworkService { if (config.filter) params.append("filter", config.filter); if (config.page) params.append("page", config.page); if (config.rowsPerPage) params.append("rowsPerPage", config.rowsPerPage); + if (config.status !== undefined) params.append("status", config.status); return this.axiosInstance.get(`/checks/${config.monitorId}?${params.toString()}`, { headers: { Authorization: `Bearer ${config.authToken}` }, @@ -646,6 +647,7 @@ class NetworkService { if (config.filter) params.append("filter", config.filter); if (config.page) params.append("page", config.page); if (config.rowsPerPage) params.append("rowsPerPage", config.rowsPerPage); + if (config.status !== undefined) params.append("status", config.status); return this.axiosInstance.get(`/checks/team/${config.teamId}?${params.toString()}`, { headers: { Authorization: `Bearer ${config.authToken}` }, }); From c7c9835e9c4d0236468f1077c43d23228b865908 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Mon, 27 Jan 2025 09:36:52 -0800 Subject: [PATCH 2/4] Add validation for status param --- Server/validation/joi.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Server/validation/joi.js b/Server/validation/joi.js index 8f366a113..9f20eb0d1 100644 --- a/Server/validation/joi.js +++ b/Server/validation/joi.js @@ -292,6 +292,7 @@ const getChecksQueryValidation = joi.object({ filter: joi.string().valid("all", "down", "resolve"), page: joi.number(), rowsPerPage: joi.number(), + status: joi.boolean(), }); const getTeamChecksParamValidation = joi.object({ @@ -305,6 +306,7 @@ const getTeamChecksQueryValidation = joi.object({ filter: joi.string().valid("all", "down", "resolve"), page: joi.number(), rowsPerPage: joi.number(), + status: joi.boolean(), }); const deleteChecksParamValidation = joi.object({ From cb624f1f294259877d25297953d27fd4482b4b69 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Mon, 27 Jan 2025 09:37:29 -0800 Subject: [PATCH 3/4] conditionally add status to the match stage of the aggreagation pipeline --- Server/db/mongo/modules/checkModule.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Server/db/mongo/modules/checkModule.js b/Server/db/mongo/modules/checkModule.js index 7965e7c30..3d158a812 100644 --- a/Server/db/mongo/modules/checkModule.js +++ b/Server/db/mongo/modules/checkModule.js @@ -70,13 +70,14 @@ const createCheck = async (checkData) => { const getChecksByMonitor = async (req) => { try { const { monitorId } = req.params; - let { sortOrder, dateRange, filter, page, rowsPerPage } = req.query; + let { sortOrder, dateRange, filter, page, rowsPerPage, status } = req.query; + status = typeof status !== "undefined" ? false : undefined; page = parseInt(page); rowsPerPage = parseInt(rowsPerPage); // Match const matchStage = { monitorId: ObjectId.createFromHexString(monitorId), - status: false, + ...(typeof status !== "undefined" && { status }), ...(dateRangeLookup[dateRange] && { createdAt: { $gte: dateRangeLookup[dateRange], @@ -111,7 +112,6 @@ const getChecksByMonitor = async (req) => { if (page && rowsPerPage) { skip = page * rowsPerPage; } - const checks = await Check.aggregate([ { $match: matchStage }, { $sort: { createdAt: sortOrder } }, From 875c13b5feb92d5d8506dcdb02daa801c3bff8c4 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Mon, 27 Jan 2025 09:37:39 -0800 Subject: [PATCH 4/4] Update incident table queries --- Client/src/Pages/Incidents/IncidentTable/index.jsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Client/src/Pages/Incidents/IncidentTable/index.jsx b/Client/src/Pages/Incidents/IncidentTable/index.jsx index ae9a3ae2a..15d65cadd 100644 --- a/Client/src/Pages/Incidents/IncidentTable/index.jsx +++ b/Client/src/Pages/Incidents/IncidentTable/index.jsx @@ -39,6 +39,7 @@ const IncidentTable = ({ monitors, selectedMonitor, filter, dateRange }) => { if (selectedMonitor === "0") { res = await networkService.getChecksByTeam({ authToken: authToken, + status: false, teamId: user.teamId, sortOrder: "desc", limit: null, @@ -50,6 +51,7 @@ const IncidentTable = ({ monitors, selectedMonitor, filter, dateRange }) => { } else { res = await networkService.getChecksByMonitor({ authToken: authToken, + status: false, monitorId: selectedMonitor, sortOrder: "desc", limit: null,