From 6457984dd4b91035352906787cdf7d3f655783b1 Mon Sep 17 00:00:00 2001 From: Br0wnHammer Date: Wed, 25 Jun 2025 14:16:00 +0530 Subject: [PATCH] ackStage Backword Compatible --- client/src/Utils/NetworkService.js | 5 ++--- server/controllers/checkController.js | 3 +-- server/db/mongo/modules/checkModule.js | 22 ++++++++++++++++------ server/routes/checkRoute.js | 6 +++++- server/validation/joi.js | 1 - 5 files changed, 24 insertions(+), 13 deletions(-) diff --git a/client/src/Utils/NetworkService.js b/client/src/Utils/NetworkService.js index 261928de6..414c45a22 100644 --- a/client/src/Utils/NetworkService.js +++ b/client/src/Utils/NetworkService.js @@ -598,7 +598,6 @@ class NetworkService { if (config.ack !== undefined) params.append("ack", config.ack); 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?${params.toString()}`); }; @@ -610,12 +609,12 @@ class NetworkService { * @async * @param {Object} config - The configuration object. * @param {string} config.checkId - The ID of the check to update. - * @param {boolean} config.status - The status to update the check to. + * @param {boolean} config.ack - The acknowledgment to update the check to. * @returns {Promise} The response from the axios PUT request. * */ async updateCheckStatus(config) { - return this.axiosInstance.put(`/checks/${config.checkId}`, { + return this.axiosInstance.put(`/checks/check/${config.checkId}`, { ack: config.ack, }); } diff --git a/server/controllers/checkController.js b/server/controllers/checkController.js index 13fd25694..8f9d0fbb5 100755 --- a/server/controllers/checkController.js +++ b/server/controllers/checkController.js @@ -90,7 +90,7 @@ class CheckController { return; } try { - let { sortOrder, dateRange, filter, ack, page, rowsPerPage, status } = req.query; + let { sortOrder, dateRange, filter, ack, page, rowsPerPage } = req.query; const { teamId } = req.user; const checkData = await this.db.getChecksByTeam({ @@ -101,7 +101,6 @@ class CheckController { page, rowsPerPage, teamId, - status, }); return res.success({ msg: this.stringService.checkGet, diff --git a/server/db/mongo/modules/checkModule.js b/server/db/mongo/modules/checkModule.js index ca7d02b1c..33e68f01e 100755 --- a/server/db/mongo/modules/checkModule.js +++ b/server/db/mongo/modules/checkModule.js @@ -72,11 +72,17 @@ const getChecksByMonitor = async ({ status = status === "true" ? true : status === "false" ? false : undefined; page = parseInt(page); rowsPerPage = parseInt(rowsPerPage); + + const ackStage = + ack === "true" + ? { ack: true } + : { $or: [{ ack: false }, { ack: { $exists: false } }] }; + // Match const matchStage = { monitorId: ObjectId.createFromHexString(monitorId), ...(typeof status !== "undefined" && { status }), - ...(typeof ack !== "undefined" && { ack: ack === "true" }), + ...(typeof ack !== "undefined" && ackStage), ...(dateRangeLookup[dateRange] && { createdAt: { $gte: dateRangeLookup[dateRange], @@ -159,16 +165,20 @@ const getChecksByTeam = async ({ page, rowsPerPage, teamId, - status, }) => { try { - status = status === "true"; page = parseInt(page); rowsPerPage = parseInt(rowsPerPage); + + const ackStage = + ack === "true" + ? { ack: true } + : { $or: [{ ack: false }, { ack: { $exists: false } }] }; + const matchStage = { - teamId: ObjectId.createFromHexString(teamId), - status: status, - ...(typeof ack !== "undefined" && { ack: ack === "true" }), + teamId: new ObjectId(teamId), + status: false, + ...(typeof ack !== "undefined" && ackStage), ...(dateRangeLookup[dateRange] && { createdAt: { $gte: dateRangeLookup[dateRange], diff --git a/server/routes/checkRoute.js b/server/routes/checkRoute.js index c0be6f92e..7f91dbe31 100755 --- a/server/routes/checkRoute.js +++ b/server/routes/checkRoute.js @@ -22,7 +22,11 @@ class CheckRoutes { this.router.get("/:monitorId", this.checkController.getChecksByMonitor); - this.router.put("/:checkId", verifyTeamAccess(Check, "checkId"), this.checkController.ackCheck); + this.router.put( + "/check/:checkId", + verifyTeamAccess(Check, "checkId"), + this.checkController.ackCheck + ); this.router.put("/:path/:monitorId?", this.checkController.ackAllChecks); diff --git a/server/validation/joi.js b/server/validation/joi.js index 74307a124..d44bb14eb 100755 --- a/server/validation/joi.js +++ b/server/validation/joi.js @@ -328,7 +328,6 @@ const getTeamChecksQueryValidation = joi.object({ ack: joi.boolean(), page: joi.number(), rowsPerPage: joi.number(), - status: joi.boolean(), }); const deleteChecksParamValidation = joi.object({