Files
Checkmate/Server/db/mongo/MongoDB.js
2024-08-08 14:27:01 -07:00

175 lines
3.7 KiB
JavaScript

const mongoose = require("mongoose");
const UserModel = require("../../models/user");
//****************************************
// DB Connection
//****************************************
const connect = async () => {
try {
await mongoose.connect(process.env.DB_CONNECTION_STRING);
console.log("Connected to MongoDB");
} catch (error) {
console.error("Failed to connect to MongoDB");
throw error;
}
};
const checkAdmin = async (req, res) => {
try {
const admin = await UserModel.findOne({ role: "admin" });
if (admin !== null) {
return true;
}
return false;
} catch (error) {
throw error;
}
};
//****************************************
// User Operations
//****************************************
const {
insertUser,
getUserByEmail,
updateUser,
deleteUser,
getAllUsers,
} = require("./modules/userModule");
//****************************************
// Invite Token Operations
//****************************************
const {
requestInviteToken,
getInviteToken,
} = require("./modules/inviteModule");
//****************************************
// Recovery Operations
//****************************************
const {
requestRecoveryToken,
validateRecoveryToken,
resetPassword,
} = require("./modules/recoveryModule");
//****************************************
// Monitors
//****************************************
const {
getAllMonitors,
getMonitorById,
getMonitorsByUserId,
createMonitor,
deleteMonitor,
deleteAllMonitors,
deleteMonitorsByUserId,
editMonitor,
} = require("./modules/monitorModule");
//****************************************
// Page Speed Checks
//****************************************
const {
createPageSpeedCheck,
getPageSpeedChecks,
deletePageSpeedChecksByMonitorId,
} = require("./modules/pageSpeedCheckModule");
//****************************************
// Checks
//****************************************
const {
createCheck,
getChecksCount,
getChecks,
getUserChecks,
deleteChecks,
} = require("./modules/checkModule");
//****************************************
// Alerts
//****************************************
const {
createAlert,
getAlertsByUserId,
getAlertsByMonitorId,
getAlertById,
editAlert,
deleteAlert,
deleteAlertByMonitorId,
} = require("./modules/alertModule");
//****************************************
// Maintenance Window
//****************************************
const {
createMaintenanceWindow,
getMaintenanceWindowsByUserId,
getMaintenanceWindowsByMonitorId,
deleteMaintenaceWindowById,
deleteMaintenanceWindowByMonitorId,
deleteMaintenanceWindowByUserId,
} = require("./modules/maintenaceWindowModule");
const {
createNotification,
getNotificationsByMonitorId,
deleteNotificationsByMonitorId,
} = require("./modules/notificationModule");
module.exports = {
connect,
insertUser,
getUserByEmail,
updateUser,
deleteUser,
getAllUsers,
requestInviteToken,
getInviteToken,
requestRecoveryToken,
validateRecoveryToken,
resetPassword,
checkAdmin,
getAllMonitors,
getMonitorById,
getMonitorsByUserId,
createMonitor,
deleteMonitor,
deleteAllMonitors,
editMonitor,
createCheck,
getChecksCount,
getChecks,
getUserChecks,
deleteChecks,
createAlert,
getAlertsByUserId,
getAlertsByMonitorId,
getAlertById,
editAlert,
deleteAlert,
deleteAlertByMonitorId,
deleteMonitorsByUserId,
createPageSpeedCheck,
getPageSpeedChecks,
deletePageSpeedChecksByMonitorId,
createMaintenanceWindow,
getMaintenanceWindowsByUserId,
getMaintenanceWindowsByMonitorId,
deleteMaintenaceWindowById,
deleteMaintenanceWindowByMonitorId,
deleteMaintenanceWindowByUserId,
createNotification,
getNotificationsByMonitorId,
deleteNotificationsByMonitorId,
};