mirror of
https://github.com/bluewave-labs/Checkmate.git
synced 2026-01-19 16:19:45 -06:00
Added validation to speedcheck route.
This commit is contained in:
@@ -1,54 +1,86 @@
|
||||
const router = require("express").Router();
|
||||
const Joi = require("joi");
|
||||
const { verifyOwnership } = require("../middleware/verifyOwnership");
|
||||
const Monitor = require("../models/Monitor");
|
||||
const {
|
||||
getPageSpeedChecks,
|
||||
createPageSpeedCheck,
|
||||
deletePageSpeedCheck,
|
||||
} = require("../controllers/pageSpeedCheckController");
|
||||
const { createPageSpeedCheck, getPageSpeedChecks, deletePageSpeedCheck } = require("../controllers/pageSpeedCheckController");
|
||||
const { getMonitorByIdValidation } = require("../validation/joi");
|
||||
|
||||
/**
|
||||
* @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"),
|
||||
createPageSpeedCheck
|
||||
"/pagespeed/:monitorId",
|
||||
verifyOwnership(Monitor, "monitorId"),
|
||||
async (req, res, next) => {
|
||||
try {
|
||||
// Validate monitorId parameter
|
||||
const { error } = getMonitorByIdValidation.validate(req.params);
|
||||
if (error) {
|
||||
return res.status(400).json({ error: error.details[0].message });
|
||||
}
|
||||
|
||||
next();
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
},
|
||||
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"),
|
||||
getPageSpeedChecks
|
||||
"/pagespeed/:monitorId",
|
||||
verifyOwnership(Monitor, "monitorId"),
|
||||
async (req, res, next) => {
|
||||
try {
|
||||
// Validate monitorId parameter
|
||||
const { error } = getMonitorByIdValidation.validate(req.params);
|
||||
if (error) {
|
||||
return res.status(400).json({ error: error.details[0].message });
|
||||
}
|
||||
|
||||
next();
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
},
|
||||
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
|
||||
async (req, res, next) => {
|
||||
try {
|
||||
// Validate monitorId parameter
|
||||
const { error } = getMonitorByIdValidation.validate(req.params);
|
||||
if (error) {
|
||||
return res.status(400).json({ error: error.details[0].message });
|
||||
}
|
||||
|
||||
next();
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
},
|
||||
deletePageSpeedCheck
|
||||
);
|
||||
|
||||
|
||||
module.exports = router;
|
||||
|
||||
Reference in New Issue
Block a user