From 7e90b5f48b5d1bc8f8679385cec304bd928b42b0 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Fri, 30 Aug 2024 13:03:59 -0700 Subject: [PATCH 1/3] Notifications added to monitor object --- Client/src/Pages/Monitors/Configure/index.jsx | 3 ++- Server/controllers/monitorController.js | 9 +++------ Server/db/mongo/modules/monitorModule.js | 4 +++- Server/models/Monitor.js | 7 +++++++ 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/Client/src/Pages/Monitors/Configure/index.jsx b/Client/src/Pages/Monitors/Configure/index.jsx index 61d7d155c..8d2b822eb 100644 --- a/Client/src/Pages/Monitors/Configure/index.jsx +++ b/Client/src/Pages/Monitors/Configure/index.jsx @@ -52,7 +52,7 @@ const Configure = () => { const [monitor, setMonitor] = useState({}); const [errors, setErrors] = useState({}); const { monitorId } = useParams(); - + console.log(monitor); const idMap = { "monitor-url": "url", "monitor-name": "name", @@ -144,6 +144,7 @@ const Configure = () => { if (pauseUptimeMonitor.fulfilled.match(action)) { const monitor = action.payload.data; setMonitor(monitor); + console.log(monitor.notifications); } else if (pauseUptimeMonitor.rejected.match(action)) { throw new Error(action.error.message); } diff --git a/Server/controllers/monitorController.js b/Server/controllers/monitorController.js index e7147b1cc..3e3c78534 100644 --- a/Server/controllers/monitorController.js +++ b/Server/controllers/monitorController.js @@ -357,16 +357,13 @@ const pauseMonitor = async (req, res, next) => { await req.jobQueue.addJob(monitor._id, monitor); } monitor.isActive = !monitor.isActive; - const updatedMonitor = await req.db.editMonitor( - req.params.monitorId, - monitor - ); + monitor.save(); return res.status(200).json({ success: true, - msg: updatedMonitor.isActive + msg: monitor.isActive ? successMessages.MONITOR_RESUME : successMessages.MONITOR_PAUSE, - data: updatedMonitor, + data: monitor, }); } catch (error) { error.service = SERVICE_NAME; diff --git a/Server/db/mongo/modules/monitorModule.js b/Server/db/mongo/modules/monitorModule.js index e2e93bcfb..6470215f3 100644 --- a/Server/db/mongo/modules/monitorModule.js +++ b/Server/db/mongo/modules/monitorModule.js @@ -284,7 +284,9 @@ const getMonitorById = async (monitorId) => { const notifications = await Notification.find({ monitorId: monitorId, }); - return { ...monitor.toObject(), notifications }; + monitor.notifications = notifications; + const monitorWithNotifications = await monitor.save(); + return monitorWithNotifications; } catch (error) { throw error; } diff --git a/Server/models/Monitor.js b/Server/models/Monitor.js index 525f4e4eb..ee4eb890d 100644 --- a/Server/models/Monitor.js +++ b/Server/models/Monitor.js @@ -1,4 +1,5 @@ const mongoose = require("mongoose"); +const Notification = require("./Notification"); const MonitorSchema = mongoose.Schema( { @@ -43,6 +44,12 @@ const MonitorSchema = mongoose.Schema( type: Number, default: 60000, }, + notifications: [ + { + type: mongoose.Schema.Types.ObjectId, + ref: "Notification", + }, + ], }, { timestamps: true, From 5b140198d6ca55625721fd6270917f0b8bc1d9bf Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Fri, 30 Aug 2024 17:46:46 -0700 Subject: [PATCH 2/3] remove log statement --- Client/src/Pages/Monitors/Configure/index.jsx | 1 - 1 file changed, 1 deletion(-) diff --git a/Client/src/Pages/Monitors/Configure/index.jsx b/Client/src/Pages/Monitors/Configure/index.jsx index 8d2b822eb..d401ed719 100644 --- a/Client/src/Pages/Monitors/Configure/index.jsx +++ b/Client/src/Pages/Monitors/Configure/index.jsx @@ -144,7 +144,6 @@ const Configure = () => { if (pauseUptimeMonitor.fulfilled.match(action)) { const monitor = action.payload.data; setMonitor(monitor); - console.log(monitor.notifications); } else if (pauseUptimeMonitor.rejected.match(action)) { throw new Error(action.error.message); } From 68b50a3059cf7c60d713c854a2d943791117efb6 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Fri, 30 Aug 2024 18:00:04 -0700 Subject: [PATCH 3/3] Update getMonitorsByTeamid to use attached notifications --- Server/controllers/monitorController.js | 4 +++- Server/db/mongo/modules/monitorModule.js | 7 +------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/Server/controllers/monitorController.js b/Server/controllers/monitorController.js index 3e3c78534..f33ddcf10 100644 --- a/Server/controllers/monitorController.js +++ b/Server/controllers/monitorController.js @@ -205,12 +205,14 @@ const createMonitor = async (req, res, next) => { const monitor = await req.db.createMonitor(req, res); if (notifications && notifications.length !== 0) { - await Promise.all( + const setNotifications = await Promise.all( notifications.map(async (notification) => { notification.monitorId = monitor._id; await req.db.createNotification(notification); }) ); + monitor.notifications = setNotifications; + await monitor.save(); } // Add monitor to job queue req.jobQueue.addJob(monitor._id, monitor); diff --git a/Server/db/mongo/modules/monitorModule.js b/Server/db/mongo/modules/monitorModule.js index 6470215f3..eebb8f496 100644 --- a/Server/db/mongo/modules/monitorModule.js +++ b/Server/db/mongo/modules/monitorModule.js @@ -346,12 +346,7 @@ const getMonitorsByTeamId = async (req, res) => { if (normalize !== undefined) { checks = NormalizeData(checks, 10, 100); } - - // Get notifications - const notifications = await Notification.find({ - monitorId: monitor._id, - }); - return { ...monitor.toObject(), checks, notifications }; + return { ...monitor.toObject(), checks }; }) ); return monitorsWithChecks;