diff --git a/Server/controllers/pageSpeedCheckController.js b/Server/controllers/pageSpeedCheckController.js index 29cc10f95..8da1b39d2 100644 --- a/Server/controllers/pageSpeedCheckController.js +++ b/Server/controllers/pageSpeedCheckController.js @@ -1,6 +1,11 @@ const PageSpeedCheck = require("../models/PageSpeedCheck"); const { successMessages } = require("../utils/messages"); const SERVICE_NAME = "pagespeed"; +const { + getPageSpeedCheckParamValidation, + createPageSpeedCheckParamValidation, + deletePageSpeedCheckParamValidation, +} = require("../validation/joi"); /** * Gets all PageSpeedChecks for a monitor @@ -12,9 +17,14 @@ const SERVICE_NAME = "pagespeed"; */ const getPageSpeedChecks = async (req, res, next) => { try { + // Validate monitorId parameter + await getPageSpeedCheckParamValidation.validateAsync(req.params); + return res.status(200).json({ msg: "Hit getPageSpeedChecks" }); } catch (error) { - error.service = SERVICE_NAME; + if (error.isJoi) { + return res.status(400).json({ error: error.details[0].message }); + } next(error); } }; @@ -29,8 +39,14 @@ const getPageSpeedChecks = async (req, res, next) => { */ const createPageSpeedCheck = async (req, res, next) => { try { + // Validate monitorId parameter + await createPageSpeedCheckParamValidation.validateAsync(req.params); + return res.status(200).json({ msg: "Hit createPageSpeedCheck" }); } catch (error) { + if (error.isJoi) { + return res.status(400).json({ error: error.details[0].message }); + } error.service = SERVICE_NAME; next(error); } @@ -46,8 +62,14 @@ const createPageSpeedCheck = async (req, res, next) => { */ const deletePageSpeedCheck = async (req, res, next) => { try { + // Validate monitorId parameter + await deletePageSpeedCheckParamValidation.validateAsync(req.params); + return res.status(200).json({ msg: "Hit deletePageSpeedCheck" }); } catch (error) { + if (error.isJoi) { + return res.status(400).json({ error: error.details[0].message }); + } error.service = SERVICE_NAME; next(error); } diff --git a/Server/routes/pageSpeedCheckRoute.js b/Server/routes/pageSpeedCheckRoute.js index 72f20d1ad..803012d95 100644 --- a/Server/routes/pageSpeedCheckRoute.js +++ b/Server/routes/pageSpeedCheckRoute.js @@ -1,54 +1,46 @@ const router = require("express").Router(); const { verifyOwnership } = require("../middleware/verifyOwnership"); const Monitor = require("../models/Monitor"); -const { - getPageSpeedChecks, - createPageSpeedCheck, - deletePageSpeedCheck, -} = require("../controllers/pageSpeedCheckController"); +const { createPageSpeedCheck, getPageSpeedChecks, deletePageSpeedCheck } = require("../controllers/pageSpeedCheckController"); + /** - * @route POST /:monitorId + * @route POST /pagespeed/:monitorId * @description Create a new PageSpeedCheck for a monitor * @access Private * @param {string} monitorId - The ID of the monitor * @middleware verifyOwnership - Ensures the user owns the monitor */ - router.post( - "/:monitorId", - verifyOwnership(Monitor, "monitorId"), + "/pagespeed/:monitorId", + verifyOwnership(Monitor, "monitorId"), createPageSpeedCheck ); - /** - * @route GET /:monitorId + * @route GET /pagespeed/:monitorId * @description Get all PageSpeedChecks for a monitor * @access Private * @param {string} monitorId - The ID of the monitor * @middleware verifyOwnership - Ensures the user owns the monitor */ - router.get( - "/:monitorId", - verifyOwnership(Monitor, "monitorId"), + "/pagespeed/:monitorId", + verifyOwnership(Monitor, "monitorId"), getPageSpeedChecks ); /** - * @route POST /delete/:monitorId + * @route DELETE /pagespeed/:monitorId * @description Delete all PageSpeedChecks for a monitor * @access Private * @param {string} monitorId - The ID of the monitor * @middleware verifyOwnership - Ensures the user owns the monitor */ - router.delete( - "/:monitorId", + "/pagespeed/:monitorId", verifyOwnership(Monitor, "monitorId"), deletePageSpeedCheck ); - module.exports = router; diff --git a/Server/validation/joi.js b/Server/validation/joi.js index 8144a7fb4..b559479e9 100644 --- a/Server/validation/joi.js +++ b/Server/validation/joi.js @@ -145,6 +145,21 @@ const deleteChecksParamValidation = joi.object({ monitorId: joi.string().required(), }); +//**************************************** +// PageSpeedCheckValidation +//**************************************** +const getPageSpeedCheckParamValidation = joi.object({ + monitorId: joi.string().required(), +}); + +const createPageSpeedCheckParamValidation = joi.object({ + monitorId: joi.string().required(), +}); + +const deletePageSpeedCheckParamValidation = joi.object({ + monitorId: joi.string().required(), +}); + module.exports = { loginValidation, registerValidation, @@ -169,4 +184,7 @@ module.exports = { getChecksParamValidation, deleteChecksParamValidation, deleteUserParamValidation, + getPageSpeedCheckParamValidation, + createPageSpeedCheckParamValidation, + deletePageSpeedCheckParamValidation, };