Merge pull request #873 from bluewave-labs/feat/swagger-ui

Feat/swagger UI
This commit is contained in:
Alexander Holliday authored and GitHub committed 2024-09-24 22:07:28 -07:00
commit 20c27ee3e7
20 files changed
+1729 -972

No files matched your search

+1 -1
View File
@@ -609,7 +609,7 @@ class NetworkService {
*/
async updateChecksTTL(config) {
return this.axiosInstance.put(
`/checks/ttl`,
`/checks/team/ttl`,
{ ttl: config.ttl },
{
headers: {
+18
View File
@@ -23,6 +23,15 @@ server {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /api-doc/ {
proxy_pass http://server:5000/api-doc/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
@@ -48,4 +57,13 @@ server {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /api-doc/ {
proxy_pass http://server:5000/api-doc/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
-192
View File
@@ -1,192 +0,0 @@
const logger = require("../utils/logger");
require("dotenv").config();
const {
createAlertParamValidation,
createAlertBodyValidation,
getAlertsByUserIdParamValidation,
getAlertsByMonitorIdParamValidation,
getAlertByIdParamValidation,
editAlertParamValidation,
editAlertBodyValidation,
deleteAlertParamValidation,
} = require("../validation/joi");
const { successMessages } = require("../utils/messages");
const SERVICE_NAME = "alertController";
/**
* Creates an alert for a monitor
* @async
* @param {Express.Request} req
* @param {Express.Response} res
* @returns {Promise<Express.Response>}
* @throws {Error}
*/
const createAlert = async (req, res, next) => {
try {
await createAlertParamValidation.validateAsync(req.params);
await createAlertBodyValidation.validateAsync(req.body);
} catch (error) {
error.status = 422;
error.message =
error.details?.[0]?.message || error.message || "Validation Error";
error.service = SERVICE_NAME;
next(error);
return;
}
try {
const alertData = { ...req.body };
const alert = await req.db.createAlert(alertData);
return res
.status(200)
.json({ success: true, msg: successMessages.ALERT_CREATE, data: alert });
} catch (error) {
error.service === undefined ? (error.service = SERVICE_NAME) : null;
error.method === undefined ? (error.method = "createAlert") : null;
next(error);
}
};
/**
* Gets all alerts for a user
* @async
* @param {Express.Request} req
* @param {Express.Response} res
* @returns {Promise<Express.Response>}
* @throws {Error}
*/
const getAlertsByUserId = async (req, res, next) => {
try {
await getAlertsByUserIdParamValidation.validateAsync(req.params);
} catch (error) {
error.status = 422;
error.message =
error.details?.[0]?.message || error.message || "Validation Error";
error.service = SERVICE_NAME;
next(error);
return;
}
try {
const alerts = await req.db.getAlertsByUserId(req.params.userId);
return res.status(200).json({
success: true,
msg: successMessages.ALERT_GET_BY_USER,
data: alerts,
});
} catch (error) {
error.service = SERVICE_NAME;
next(error);
}
};
const getAlertsByMonitorId = async (req, res, next) => {
try {
await getAlertsByMonitorIdParamValidation.validateAsync(req.params);
} catch (error) {
error.status = 422;
error.message =
error.details?.[0]?.message || error.message || "Validation Error";
error.service = SERVICE_NAME;
next(error);
return;
}
try {
const alerts = await req.db.getAlertsByMonitorId(req.params.monitorId);
return res.status(200).json({
success: true,
msg: successMessages.ALERT_GET_BY_MONITOR,
data: alerts,
});
} catch (error) {
error.service = SERVICE_NAME;
next(error);
}
};
const getAlertById = async (req, res, next) => {
try {
await getAlertByIdParamValidation.validateAsync(req.params);
} catch (error) {
error.status = 422;
error.message =
error.details?.[0]?.message || error.message || "Validation Error";
error.service = SERVICE_NAME;
next(error);
return;
}
try {
const alert = await req.db.getAlertById(req.params.alertId);
return res.status(200).json({
success: true,
msg: successMessages.ALERT_GET_BY_ID,
data: alert,
});
} catch (error) {
error.service = SERVICE_NAME;
next(error);
}
};
const editAlert = async (req, res, next) => {
try {
await editAlertParamValidation.validateAsync(req.params);
await editAlertBodyValidation.validateAsync(req.body);
} catch (error) {
console.log(error);
error.status = 422;
error.message =
error.details?.[0]?.message || error.message || "Validation Error";
error.service = SERVICE_NAME;
next(error);
return;
}
try {
const alertData = { ...req.body };
const alert = await req.db.editAlert(req.params.alertId, alertData);
return res.status(200).json({
success: true,
msg: successMessages.ALERT_EDIT,
data: alert,
});
} catch (error) {
error.service = SERVICE_NAME;
next(error);
}
};
const deleteAlert = async (req, res, next) => {
try {
await deleteAlertParamValidation.validateAsync(req.params);
} catch (error) {
error.status = 422;
error.message =
error.details?.[0]?.message || error.message || "Validation Error";
error.service = SERVICE_NAME;
next(error);
return;
}
try {
const deleted = await req.db.deleteAlert(req.params.alertId);
return res.status(200).json({
success: true,
msg: successMessages.ALERT_DELETE,
data: deleted,
});
} catch (error) {
error.service = SERVICE_NAME;
next(error);
}
};
module.exports = {
createAlert,
getAlertsByUserId,
getAlertsByMonitorId,
getAlertById,
editAlert,
deleteAlert,
};
-17
View File
@@ -49,23 +49,6 @@ const registerController = async (req, res, next) => {
next(error);
return;
}
// TODO Can there be more than one admin?
// // Check if an admin user exists, if so, error
// try {
// const admin = await req.db.checkAdmin(req, res);
// console.log(admin);
// if (admin === true) {
// throw new Error(errorMessages.AUTH_ADMIN_EXISTS);
// }
// } catch (error) {
// console.log("WEEEEEEE", error.message);
// error.service = SERVICE_NAME;
// error.status = 403;
// next(error);
// return;
// }
// Create a new user
try {
const newUser = await req.db.insertUser({ ...req.body }, req.file);
-43
View File
@@ -44,48 +44,6 @@ const getAllMonitors = async (req, res, next) => {
}
};
/**
* Returns agregate stats for a monitor
* @async
* @param {Express.Request} req
* @param {Express.Response} res
* @returns {Promise<Express.Response>}
* @throws {Error}
*/
const getMonitorAggregateStats = async (req, res, next) => {
try {
await getMonitorAggregateStatsParamValidation.validateAsync(req.params);
await getMonitorAggregateStatsQueryValidation.validateAsync(req.query);
} catch (error) {
error.status = 422;
error.message =
error.details?.[0]?.message || error.message || "Validation Error";
next(error);
return;
}
try {
const { monitorId } = req.params;
const dateRange = req.query.dateRange;
const aggregateStats = await req.db.getMonitorAggregateStats(
monitorId,
dateRange
);
return res.json({
success: true,
msg: successMessages.MONTIOR_STATS_BY_ID,
data: aggregateStats,
});
} catch (error) {
error.service === undefined ? (error.service = SERVICE_NAME) : null;
error.method === undefined
? (error.method = "getMonitorAggregateStats")
: null;
next(error);
}
};
/**
* Returns monitor stats for monitor with matching ID
* @async
@@ -516,7 +474,6 @@ const addDemoMonitors = async (req, res, next) => {
module.exports = {
getAllMonitors,
getMonitorAggregateStats,
getMonitorStatsById,
getMonitorCertificate,
getMonitorById,
@@ -1,129 +0,0 @@
const PageSpeedService = require("../service/pageSpeedService");
const { successMessages } = require("../utils/messages");
const pageSpeedService = new PageSpeedService();
const SERVICE_NAME = "pagespeedCheckController";
const {
getPageSpeedCheckParamValidation,
createPageSpeedCheckParamValidation,
createPageSpeedCheckBodyValidation,
deletePageSpeedCheckParamValidation,
} = require("../validation/joi");
/**
* 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<Express.Response>}
*/
const getPageSpeedChecks = async (req, res, next) => {
try {
// Validate monitorId parameter
await getPageSpeedCheckParamValidation.validateAsync(req.params);
} catch (error) {
error.status = 422;
error.service = SERVICE_NAME;
error.message =
error.details?.[0]?.message || error.message || "Validation Error";
next(error);
return;
}
try {
return res.status(200).json({ msg: "Hit getPageSpeedChecks" });
} catch (error) {
error.service === undefined ? (error.service = SERVICE_NAME) : null;
error.method === undefined ? (error.method = "getPageSpeedChecks") : null;
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<Express.Response>}
*/
const createPageSpeedCheck = async (req, res, next) => {
try {
await createPageSpeedCheckParamValidation.validateAsync(req.params);
await createPageSpeedCheckBodyValidation.validateAsync(req.body);
} catch (error) {
error.status = 422;
error.service = SERVICE_NAME;
error.message =
error.details?.[0]?.message || error.message || "Validation Error";
next(error);
return;
}
try {
const { monitorId } = req.params;
const { url } = req.body;
// Run the PageSpeed check
const pageSpeedResults = await pageSpeedService.runPageSpeedCheck(url);
// Extract categories scores
const categories = pageSpeedResults.lighthouseResult?.categories;
if (!categories) {
throw new Error("Categories not found in PageSpeed results");
}
const newPageSpeedCheck = await pageSpeedService.createPageSpeedCheck({
monitorId,
accessibility: (categories.accessibility?.score || 0) * 100,
bestPractices: (categories["best-practices"]?.score || 0) * 100,
seo: (categories.seo?.score || 0) * 100,
performance: (categories.performance?.score || 0) * 100,
});
return res.status(201).json({
msg: successMessages.CREATED,
data: newPageSpeedCheck,
});
} catch (error) {
error.service === undefined ? (error.service = SERVICE_NAME) : null;
error.method === undefined ? (error.method = "createPageSpeedCheck") : null;
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<Express.Response>}
*/
const deletePageSpeedCheck = async (req, res, next) => {
try {
// Validate monitorId parameter
await deletePageSpeedCheckParamValidation.validateAsync(req.params);
} catch (error) {
error.status = 422;
error.service = SERVICE_NAME;
error.message =
error.details?.[0]?.message || error.message || "Validation Error";
next(error);
return;
}
try {
return res.status(200).json({ msg: "Hit deletePageSpeedCheck" });
} catch (error) {
error.service === undefined ? (error.service = SERVICE_NAME) : null;
error.method === undefined ? (error.method = "deletePageSpeedCheck") : null;
next(error);
}
};
module.exports = {
getPageSpeedChecks,
createPageSpeedCheck,
deletePageSpeedCheck,
};
+1 -1
View File
@@ -41,7 +41,7 @@ const addJob = async (req, res, next) => {
const obliterateQueue = async (req, res, next) => {
try {
const obliterated = await req.jobQueue.obliterate();
return res.status(200).send("Obliterated jobs");
return res.status(200).send("Obliterated queue");
} catch (error) {
error.service === undefined ? (error.service = SERVICE_NAME) : null;
error.method === undefined ? (error.method = "obliterateQueue") : null;
-21
View File
@@ -100,20 +100,6 @@ const {
updateChecksTTL,
} = require("./modules/checkModule");
//****************************************
// Alerts
//****************************************
const {
createAlert,
getAlertsByUserId,
getAlertsByMonitorId,
getAlertById,
editAlert,
deleteAlert,
deleteAlertByMonitorId,
} = require("./modules/alertModule");
//****************************************
// Maintenance Window
//****************************************
@@ -163,13 +149,6 @@ module.exports = {
deleteChecks,
deleteChecksByTeamId,
updateChecksTTL,
createAlert,
getAlertsByUserId,
getAlertsByMonitorId,
getAlertById,
editAlert,
deleteAlert,
deleteAlertByMonitorId,
deleteMonitorsByUserId,
createPageSpeedCheck,
getPageSpeedChecks,
-140
View File
@@ -1,140 +0,0 @@
const Alert = require("../../../models/Alert");
/**
* Creates an Alert associated with a Monitor and User
* @async
* @param {Object} alertData
* @param {string} alertData.checkId
* @param {string} alert.monitorId
* @param {string} alert.userId
* @param {boolean} alert.status
* @param {string} alert.message
* @param {boolean} alert.notifiedStatus
* @param {boolean} alert.acknowledgeStatus
* @returns {<Promise<Alert>>}
* @throws {Error}
*/
const createAlert = async (alertData) => {
try {
const alert = await new Alert({ ...alertData }).save();
return alert;
} catch (error) {
throw error;
}
};
/**
* Gets all alerts a User has set
* @async
* @param {string} userId
* @returns {<Promise<Array<Alert>>}
* @throws {Error}
*/
const getAlertsByUserId = async (userId) => {
try {
const alerts = await Alert.find({ userId });
return alerts;
} catch (error) {
throw error;
}
};
/**
* Gets all alerts a for an associated Monitor
* @async
* @param {string} monitorId
* @returns {<Promise<Array<Alert>>}
* @throws {Error}
*/
const getAlertsByMonitorId = async (monitorId) => {
try {
const alerts = await Alert.find({ monitorId });
return alerts;
} catch (error) {
throw error;
}
};
/**
* Returns an alert with specified ID
* @async
* @param {string} alertId
* @returns {Promise<Alert>}
* @throws {Error}
*/
const getAlertById = async (alertId) => {
try {
const alert = await Alert.findById(alertId);
return alert;
} catch (error) {
throw error;
}
};
/**
* Returns an edited alert with the specified ID
* @async
* @param {string} alertId
* @param {Object} alertData
* @param {string} alertData.checkId
* @param {string} alertData.monitorId
* @param {string} alertData.userId
* @param {boolean} alertData.status
* @param {string} alertData.message
* @param {boolean} alertData.notifiedStatus
* @param {boolean} alertData.acknowledgeStatus
* @param {Express.Response} res
* @returns {Promise<Alert>>}
* @throws {Error}
*/
const editAlert = async (alertId, alertData) => {
try {
const editedAlert = await Alert.findByIdAndUpdate(alertId, alertData, {
new: true,
});
return editedAlert;
} catch (error) {
throw error;
}
};
/**
* Deletes an alert with the specified ID
* @async
* @param {string} alertId
* @throws {Error}
*/
const deleteAlert = async (alertId) => {
try {
const result = await Alert.findByIdAndDelete(alertId);
return result;
} catch (error) {
throw error;
}
};
/**
* Deletes alerts by monitor ID.
*
* @param {string} monitorId - The ID of the monitor.
* @returns {Promise} A promise that resolves to the result of the delete operation.
* @throws {Error} If an error occurs while deleting the alerts.
*/
const deleteAlertByMonitorId = async (monitorId) => {
try {
const result = await Alert.deleteMany({ monitorId });
return result;
} catch (error) {
throw error;
}
};
module.exports = {
createAlert,
getAlertsByUserId,
getAlertsByMonitorId,
getAlertById,
editAlert,
deleteAlert,
deleteAlertByMonitorId,
};
+12 -7
View File
@@ -1,3 +1,7 @@
const path = require("path");
const fs = require("fs");
const swaggerUi = require("swagger-ui-express");
const express = require("express");
const helmet = require("helmet");
const cors = require("cors");
@@ -10,8 +14,6 @@ const authRouter = require("./routes/authRoute");
const inviteRouter = require("./routes/inviteRoute");
const monitorRouter = require("./routes/monitorRoute");
const checkRouter = require("./routes/checkRoute");
const alertRouter = require("./routes/alertRoute");
const pageSpeedCheckRouter = require("./routes/pageSpeedCheckRoute");
const maintenanceWindowRouter = require("./routes/maintenanceWindowRoute");
const { connectDbAndRunServer } = require("./configs/db");
@@ -21,8 +23,11 @@ const NetworkService = require("./service/networkService");
const EmailService = require("./service/emailService");
const PageSpeedService = require("./service/pageSpeedService");
const SERVICE_NAME = "Server";
let cleaningUp = false;
let cleaningUp = false;
const openApiSpec = JSON.parse(
fs.readFileSync(path.join(__dirname, "openapi.json"), "utf8")
);
// Need to wrap server setup in a function to handle async nature of JobQueue
const startApp = async () => {
// **************************
@@ -70,16 +75,16 @@ const startApp = async () => {
next();
});
// Swagger UI
app.use("/api-docs", swaggerUi.serve, swaggerUi.setup(openApiSpec));
//routes
app.use("/api/v1/auth", authRouter);
app.use("/api/v1/invite", inviteRouter);
app.use("/api/v1/monitors", verifyJWT, monitorRouter);
app.use("/api/v1/checks", verifyJWT, checkRouter);
app.use("/api/v1/alerts", verifyJWT, alertRouter);
app.use("/api/v1/pagespeed", verifyJWT, pageSpeedCheckRouter);
app.use("/api/v1/maintenance-window", verifyJWT, maintenanceWindowRouter);
//Temporary route for testing, remove later
app.use("/api/v1/job", queueRouter);
app.use("/api/v1/queue", verifyJWT, queueRouter);
//health check
app.use("/api/v1/healthy", (req, res) => {
-38
View File
@@ -1,38 +0,0 @@
const mongoose = require('mongoose')
const AlertSchema = mongoose.Schema(
{
checkId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Check',
immutable: true,
},
monitorId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Monitor',
immutable: true,
},
userId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User',
immutable: true,
},
status: {
type: Boolean,
},
message: {
type: String,
},
notifiedStatus: {
type: Boolean,
},
acknowledgeStatus: {
type: Boolean,
}
},
{
timestamps: true,
}
);
module.exports = mongoose.model('Alert', AlertSchema);
+1682 -266
View File
File diff suppressed because it is too large. Load diff
-44
View File
@@ -1,44 +0,0 @@
const router = require("express").Router();
const alertController = require("../controllers/alertController");
const { verifyOwnership } = require("../middleware/verifyOwnership");
const Alert = require("../models/Alert");
const Monitor = require("../models/Monitor");
// Create alert
router.post(
"/:monitorId",
verifyOwnership(Monitor, "monitorId"),
alertController.createAlert
);
// Get all alerts for a user
router.get(
"/user/:userId",
verifyOwnership(Monitor, "monitorId"),
alertController.getAlertsByUserId
);
// Get all alerts for a monitor
router.get(
"/monitor/:monitorId",
verifyOwnership(Monitor, "monitorId"),
alertController.getAlertsByMonitorId
);
// Get a single alert
router.get(
"/:alertId",
verifyOwnership(Monitor, "monitorId"),
alertController.getAlertById
);
// Edit
router.put(
"/:alertId",
verifyOwnership(Monitor, "monitorId"),
alertController.editAlert
);
//Delete
router.delete(
"/:alertId",
verifyOwnership(Monitor, "monitorId"),
alertController.deleteAlert
);
module.exports = router;
+4 -6
View File
@@ -4,22 +4,20 @@ const { verifyOwnership } = require("../middleware/verifyOwnership");
const { isAllowed } = require("../middleware/isAllowed");
const Monitor = require("../models/Monitor");
router.get("/:monitorId", checkController.getChecks);
router.post(
"/:monitorId",
verifyOwnership(Monitor, "monitorId"),
checkController.createCheck
);
router.get("/:monitorId", checkController.getChecks);
router.get("/team/:teamId", checkController.getTeamChecks);
router.delete(
"/:monitorId",
verifyOwnership(Monitor, "monitorId"),
checkController.deleteChecks
);
router.get("/team/:teamId", checkController.getTeamChecks);
router.delete(
"/team/:teamId",
isAllowed(["admin", "superadmin"]),
@@ -27,7 +25,7 @@ router.delete(
);
router.put(
"/ttl",
"/team/ttl",
isAllowed(["admin", "superadmin"]),
checkController.updateChecksTTL
);
+7 -7
View File
@@ -3,8 +3,14 @@ const maintenanceWindowController = require("../controllers/maintenanceWindowCon
const { verifyOwnership } = require("../middleware/verifyOwnership");
const Monitor = require("../models/Monitor");
router.get(
"/monitor/:monitorId",
verifyOwnership(Monitor, "monitorId"),
maintenanceWindowController.getMaintenanceWindowsByMonitorId
);
router.post(
"/:monitorId",
"/monitor/:monitorId",
verifyOwnership(Monitor, "monitorId"),
maintenanceWindowController.createMaintenanceWindow
);
@@ -14,10 +20,4 @@ router.get(
maintenanceWindowController.getMaintenanceWindowsByUserId
);
router.get(
"/monitor/:monitorId",
verifyOwnership(Monitor, "monitorId"),
maintenanceWindowController.getMaintenanceWindowsByMonitorId
);
module.exports = router;
-1
View File
@@ -3,7 +3,6 @@ const monitorController = require("../controllers/monitorController");
const { isAllowed } = require("../middleware/isAllowed");
router.get("/", monitorController.getAllMonitors);
router.get("/aggregate/:monitorId", monitorController.getMonitorAggregateStats);
router.get("/stats/:monitorId", monitorController.getMonitorStatsById);
router.get("/certificate/:monitorId", monitorController.getMonitorCertificate);
router.get("/:monitorId", monitorController.getMonitorById);
-45
View File
@@ -1,45 +0,0 @@
const router = require("express").Router();
const { verifyOwnership } = require("../middleware/verifyOwnership");
const Monitor = require("../models/Monitor");
const pageSpeedCheckController = require("../controllers/pageSpeedCheckController");
/**
* @route POST /: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"),
pageSpeedCheckController.createPageSpeedCheck
);
/**
* @route GET /: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"),
pageSpeedCheckController.getPageSpeedChecks
);
/**
* @route DELETE /: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",
verifyOwnership(Monitor, "monitorId"),
pageSpeedCheckController.deletePageSpeedCheck
);
module.exports = router;
+2 -2
View File
@@ -4,10 +4,10 @@ const queueController = require("../controllers/queueController");
router.get("/metrics", queueController.getMetrics);
// Get Jobs
router.get("/", queueController.getJobs);
router.get("/jobs", queueController.getJobs);
// Add Job
router.post("/", queueController.addJob);
router.post("/jobs", queueController.addJob);
// Obliterate Queue
router.post("/obliterate", queueController.obliterateQueue);
+2 -2
View File
@@ -240,12 +240,12 @@ class JobQueue {
*/
async addJob(jobName, payload) {
try {
console.log("Adding job", payload.url);
console.log("Adding job", payload?.url ?? "No URL");
// Execute job immediately
await this.queue.add(jobName, payload);
await this.queue.add(jobName, payload, {
repeat: {
every: payload.interval,
every: payload?.interval ?? 60000,
},
});
const workerStats = await this.getWorkerStats();
-10
View File
@@ -137,7 +137,6 @@ const inviteBodyValidation = joi.object({
"string.email": "Must be a valid email address",
}),
role: joi.array().required(),
teamId: joi.string().required(),
});
const inviteVerifciationBodyValidation = joi.object({
@@ -236,13 +235,6 @@ const pauseMonitorParamValidation = joi.object({
monitorId: joi.string().required(),
});
const getMonitorAggregateStatsParamValidation = joi.object({
monitorId: joi.string().required(),
});
const getMonitorAggregateStatsQueryValidation = joi.object({
dateRange: joi.string().valid("day", "week", "month"),
});
//****************************************
// Alerts
//****************************************
@@ -408,8 +400,6 @@ module.exports = {
getMonitorStatsByIdParamValidation,
getMonitorStatsByIdQueryValidation,
getCertificateParamValidation,
getMonitorAggregateStatsParamValidation,
getMonitorAggregateStatsQueryValidation,
editMonitorBodyValidation,
pauseMonitorParamValidation,
editUserParamValidation,