diff --git a/Client/src/Components/MonitorTable/index.jsx b/Client/src/Components/MonitorTable/index.jsx index 536c2c019..f26b44a78 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,6 +109,17 @@ const MonitorTable = ({ monitors = [] }) => { ? "var(--env-var-color-17)" : "var(--env-var-color-19)", }; + 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: , diff --git a/Server/controllers/pageSpeedCheckController.js b/Server/controllers/pageSpeedCheckController.js new file mode 100644 index 000000000..29cc10f95 --- /dev/null +++ b/Server/controllers/pageSpeedCheckController.js @@ -0,0 +1,60 @@ +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" }); + } catch (error) { + error.service = SERVICE_NAME; + next(error); + } +}; + +/** + * 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" }); + } catch (error) { + error.service = SERVICE_NAME; + next(error); + } +}; + +/** + * 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" }); + } catch (error) { + error.service = SERVICE_NAME; + next(error); + } +}; + +module.exports = { + getPageSpeedChecks, + createPageSpeedCheck, + deletePageSpeedCheck, +}; 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;