From bc3a47e2647745cefef80c65a69dbe76ff0acea0 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Tue, 16 Jul 2024 10:14:25 -0700 Subject: [PATCH 1/4] correcetd route and method for delete route --- Server/routes/pageSpeedCheckRoute.js | 30 +++++++++------------------- 1 file changed, 9 insertions(+), 21 deletions(-) diff --git a/Server/routes/pageSpeedCheckRoute.js b/Server/routes/pageSpeedCheckRoute.js index 0881a3bd5..d4d06820a 100644 --- a/Server/routes/pageSpeedCheckRoute.js +++ b/Server/routes/pageSpeedCheckRoute.js @@ -9,13 +9,9 @@ const Monitor = require("../models/Monitor"); * @param {string} monitorId - The ID of the monitor * @middleware verifyOwnership - Ensures the user owns the monitor */ -router.post( - "/:monitorId", - verifyOwnership(Monitor, "monitorId"), - () => { - console.log("Create check"); - } -); +router.post("/:monitorId", verifyOwnership(Monitor, "monitorId"), () => { + console.log("Create check"); +}); /** * @route GET /:monitorId @@ -24,13 +20,9 @@ router.post( * @param {string} monitorId - The ID of the monitor * @middleware verifyOwnership - Ensures the user owns the monitor */ -router.get( - "/:monitorId", - verifyOwnership(Monitor, "monitorId"), - () => { - console.log("Get checks"); - } -); +router.get("/:monitorId", verifyOwnership(Monitor, "monitorId"), () => { + console.log("Get checks"); +}); /** * @route POST /delete/:monitorId @@ -39,12 +31,8 @@ router.get( * @param {string} monitorId - The ID of the monitor * @middleware verifyOwnership - Ensures the user owns the monitor */ -router.post( - "/delete/:monitorId", - verifyOwnership(Monitor, "monitorId"), - () => { - console.log("Delete checks"); - } -); +router.delete("/:monitorId", verifyOwnership(Monitor, "monitorId"), () => { + console.log("Delete checks"); +}); module.exports = router; From be7ff41b0e84f32548afe2601f1ad7888a207233 Mon Sep 17 00:00:00 2001 From: M M Date: Tue, 16 Jul 2024 10:53:19 -0700 Subject: [PATCH 2/4] setup the controller module for the page speed check. --- .../controllers/pageSpeedCheckController.js | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 Server/controllers/pageSpeedCheckController.js diff --git a/Server/controllers/pageSpeedCheckController.js b/Server/controllers/pageSpeedCheckController.js new file mode 100644 index 000000000..21fc7b09c --- /dev/null +++ b/Server/controllers/pageSpeedCheckController.js @@ -0,0 +1,36 @@ +const PageSpeedCheck = require("../models/PageSpeedCheck"); +const { successMessages } = require("../utils/messages"); +const SERVICE_NAME = "pagespeed"; + +const getPageSpeedChecks = async (req, res, next) => { + try { + return res.status(200).json({ msg: "Hit getPageSpeedChecks" }); + } catch (error) { + error.service = SERVICE_NAME; + next(error); + } +}; + +const createPageSpeedCheck = async (req, res, next) => { + try { + return res.status(200).json({ msg: "Hit createPageSpeedCheck" }); + } catch (error) { + error.service = SERVICE_NAME; + next(error); + } +}; + +const deletePageSpeedCheck = async (req, res, next) => { + try { + return res.status(200).json({ msg: "Hit deletePageSpeedCheck" }); + } catch (error) { + error.service = SERVICE_NAME; + next(error); + } +}; + +module.exports = { + getPageSpeedChecks, + createPageSpeedCheck, + deletePageSpeedCheck, +}; From 519ef1404f5a3fa0b542cf3bbd2633f8bb86c483 Mon Sep 17 00:00:00 2001 From: M M Date: Tue, 16 Jul 2024 10:54:59 -0700 Subject: [PATCH 3/4] Added JS Docs. --- .../controllers/pageSpeedCheckController.js | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Server/controllers/pageSpeedCheckController.js b/Server/controllers/pageSpeedCheckController.js index 21fc7b09c..29cc10f95 100644 --- a/Server/controllers/pageSpeedCheckController.js +++ b/Server/controllers/pageSpeedCheckController.js @@ -2,6 +2,14 @@ const PageSpeedCheck = require("../models/PageSpeedCheck"); const { successMessages } = require("../utils/messages"); const SERVICE_NAME = "pagespeed"; +/** + * Gets all PageSpeedChecks for a monitor + * @async + * @param {Express.Request} req - The request object + * @param {Express.Response} res - The response object + * @param {Function} next - The next middleware function + * @returns {Promise} + */ const getPageSpeedChecks = async (req, res, next) => { try { return res.status(200).json({ msg: "Hit getPageSpeedChecks" }); @@ -11,6 +19,14 @@ const getPageSpeedChecks = async (req, res, next) => { } }; +/** + * Creates a new PageSpeedCheck for a monitor + * @async + * @param {Express.Request} req - The request object + * @param {Express.Response} res - The response object + * @param {Function} next - The next middleware function + * @returns {Promise} + */ const createPageSpeedCheck = async (req, res, next) => { try { return res.status(200).json({ msg: "Hit createPageSpeedCheck" }); @@ -20,6 +36,14 @@ const createPageSpeedCheck = async (req, res, next) => { } }; +/** + * Deletes all PageSpeedChecks for a monitor + * @async + * @param {Express.Request} req - The request object + * @param {Express.Response} res - The response object + * @param {Function} next - The next middleware function + * @returns {Promise} + */ const deletePageSpeedCheck = async (req, res, next) => { try { return res.status(200).json({ msg: "Hit deletePageSpeedCheck" }); From 0b74175e9c0492bb5f3c018f96ee2621bd7c083c Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Tue, 16 Jul 2024 11:10:45 -0700 Subject: [PATCH 4/4] Merged chagnes --- Client/src/Components/MonitorTable/index.jsx | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Client/src/Components/MonitorTable/index.jsx b/Client/src/Components/MonitorTable/index.jsx index 338ebb793..6904978c8 100644 --- a/Client/src/Components/MonitorTable/index.jsx +++ b/Client/src/Components/MonitorTable/index.jsx @@ -3,6 +3,7 @@ import PropTypes from "prop-types"; import ResponseTimeChart from "../Charts/ResponseTimeChart"; import BasicTable from "../BasicTable"; import OpenInNewPage from "../../assets/icons/open-in-new-page.svg?react"; +import { useNavigate } from "react-router-dom"; /** * Host component. @@ -80,6 +81,8 @@ const Status = ({ params }) => { * @returns {React.Component} Returns a table with the monitor data. */ const MonitorTable = ({ monitors = [] }) => { + const navigate = useNavigate(); + const headers = [ { id: 1, name: "Host" }, { id: 2, name: "Status" }, @@ -106,8 +109,17 @@ const MonitorTable = ({ monitors = [] }) => { ? "var(--env-var-color-17)" : "var(--env-var-color-19)", }; - data.push({ id: data.length + 1, data: }); - data.push({ id: data.length + 1, data: }); + data.push({ + id: data.length + 1, + data: , + handleClick: () => { + navigate(`/monitors/${monitor._id}`); + }, + }); + data.push({ + id: data.length + 1, + data: , + }); data.push({ id: data.length + 1, data: ,