- {/* Default state of Email Text Fields */}
-
-
- {/* Email Text Field when validation error occures */}
-
-
-
-
-
- {/* Now, illustration of the Website text fields */}
-
-
-
-
-
-
- {/* Now, illustration of the Description text fields */}
-
-
-
-
-
-
-
-
-
-
-
-
- );
-}
-
-export default PlayGround;
diff --git a/Client/src/Pages/PlayGround/playGround.css b/Client/src/Pages/PlayGround/playGround.css
deleted file mode 100644
index cd6d5e87b..000000000
--- a/Client/src/Pages/PlayGround/playGround.css
+++ /dev/null
@@ -1,19 +0,0 @@
-.play-ground-charts {
- display: flex;
-}
-
-.play-ground-charts-spacing {
- height: 110px;
-}
-
-.tooltip-playground {
- margin: auto;
- padding: 5%;
- width: 5%;
- justify-content: center;
- text-align: center;
-}
-
-.playground {
- padding: 40px;
-}
diff --git a/Client/src/Pages/Register/index.css b/Client/src/Pages/Register/index.css
deleted file mode 100644
index b3e7c8a89..000000000
--- a/Client/src/Pages/Register/index.css
+++ /dev/null
@@ -1,38 +0,0 @@
-.register-page {
- display: flex;
- justify-content: center;
- height: var(--env-var-height-1);
-}
-.register-page h1.MuiTypography-root {
- font-size: var(--env-var-font-size-large);
- color: var(--env-var-color-1);
- font-weight: 600;
- opacity: 0.5;
-}
-.register-page p.MuiTypography-root,
-.register-page span,
-.register-page button {
- font-size: var(--env-var-font-size-medium);
-}
-.register-page p.MuiTypography-root {
- color: var(--env-var-color-2);
- opacity: 0.8;
-}
-.register-page button:not(.MuiIconButton-root) {
- height: 34px;
- border-radius: var(--env-var-radius-2);
- line-height: 0;
-}
-.register-page svg rect {
- fill: none;
-}
-.register-page
- .MuiFormControl-root:has(#register-password-input)
- + span.MuiTypography-root {
- display: none;
- visibility: hidden;
-}
-
-.register-form {
- margin-top: 95px;
-}
diff --git a/Client/src/Pages/SetNewPassword/index.css b/Client/src/Pages/SetNewPassword/index.css
deleted file mode 100644
index db7160d85..000000000
--- a/Client/src/Pages/SetNewPassword/index.css
+++ /dev/null
@@ -1,36 +0,0 @@
-.set-new-password-page {
- display: flex;
- justify-content: center;
- height: var(--env-var-height-1);
-}
-.set-new-password-page button:not(.MuiIconButton-root) {
- height: 34px;
- border-radius: var(--env-var-radius-2);
- line-height: 0;
-}
-.set-new-password-page h1.MuiTypography-root {
- font-size: var(--env-var-font-size-large);
- color: var(--env-var-color-1);
- font-weight: 600;
-}
-.set-new-password-page p.MuiTypography-root,
-.set-new-password-page button {
- font-size: var(--env-var-font-size-medium);
-}
-.set-new-password-page p.MuiTypography-root {
- color: var(--env-var-color-2);
-}
-.set-new-password-page button:not(.MuiIconButton-root) svg {
- margin-right: 5px;
-}
-.set-new-password-page
- .MuiFormControl-root:has(#register-password-input)
- + span.MuiTypography-root {
- display: none;
- visibility: hidden;
-}
-
-.set-new-password-form {
- margin-top: 65px;
- width: var(--env-var-width-2);
-}
diff --git a/Client/src/index.css b/Client/src/index.css
index 4b7898c9a..61c961dad 100644
--- a/Client/src/index.css
+++ b/Client/src/index.css
@@ -128,7 +128,7 @@ button:focus-visible {
.Toastify__toast-container {
width: auto;
}
-.Toastify__toast-body .alert{
+.Toastify__toast-body .alert {
min-width: 150px;
}
.Toastify [class^="Toastify__toast"] {
@@ -140,6 +140,14 @@ button:focus-visible {
border-radius: 4px;
}
+.background-pattern-svg {
+ position: absolute;
+ top: -5%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ z-index: -1;
+}
+
@media (prefers-color-scheme: light) {
:root {
color: #213547;
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,
};