mirror of
https://github.com/bluewave-labs/Checkmate.git
synced 2026-01-20 16:49:46 -06:00
199 lines
4.5 KiB
JavaScript
199 lines
4.5 KiB
JavaScript
const mongoose = require("mongoose");
|
|
const UserModel = require("../models/User");
|
|
const AppSettings = require("../models/AppSettings");
|
|
|
|
//****************************************
|
|
// DB Connection
|
|
//****************************************
|
|
|
|
const connect = async () => {
|
|
try {
|
|
const connectionString =
|
|
process.env.DB_CONNECTION_STRING || "mongodb://localhost:27017/uptime_db";
|
|
await mongoose.connect(connectionString);
|
|
// If there are no AppSettings, create one
|
|
let appSettings = await AppSettings.find();
|
|
if (appSettings.length === 0) {
|
|
appSettings = new AppSettings({});
|
|
await appSettings.save();
|
|
}
|
|
|
|
console.log("Connected to MongoDB");
|
|
} catch (error) {
|
|
console.error("Failed to connect to MongoDB");
|
|
throw error;
|
|
}
|
|
};
|
|
|
|
const checkSuperadmin = async (req, res) => {
|
|
try {
|
|
const superAdmin = await UserModel.findOne({ role: "superadmin" });
|
|
if (superAdmin !== null) {
|
|
return true;
|
|
}
|
|
return false;
|
|
} catch (error) {
|
|
throw error;
|
|
}
|
|
};
|
|
|
|
//****************************************
|
|
// User Operations
|
|
//****************************************
|
|
|
|
const {
|
|
insertUser,
|
|
getUserByEmail,
|
|
updateUser,
|
|
deleteUser,
|
|
deleteTeam,
|
|
deleteAllOtherUsers,
|
|
getAllUsers,
|
|
logoutUser,
|
|
} = require("./modules/userModule");
|
|
|
|
//****************************************
|
|
// Invite Token Operations
|
|
//****************************************
|
|
|
|
const {
|
|
requestInviteToken,
|
|
getInviteToken,
|
|
getInviteTokenAndDelete,
|
|
} = require("./modules/inviteModule");
|
|
|
|
//****************************************
|
|
// Recovery Operations
|
|
//****************************************
|
|
const {
|
|
requestRecoveryToken,
|
|
validateRecoveryToken,
|
|
resetPassword,
|
|
} = require("./modules/recoveryModule");
|
|
|
|
//****************************************
|
|
// Monitors
|
|
//****************************************
|
|
|
|
const {
|
|
getAllMonitors,
|
|
getMonitorStatsById,
|
|
getMonitorById,
|
|
getMonitorsAndSummaryByTeamId,
|
|
getMonitorsByTeamId,
|
|
createMonitor,
|
|
deleteMonitor,
|
|
deleteAllMonitors,
|
|
deleteMonitorsByUserId,
|
|
editMonitor,
|
|
addDemoMonitors,
|
|
} = require("./modules/monitorModule");
|
|
|
|
//****************************************
|
|
// Page Speed Checks
|
|
//****************************************
|
|
|
|
const {
|
|
createPageSpeedCheck,
|
|
getPageSpeedChecks,
|
|
deletePageSpeedChecksByMonitorId,
|
|
} = require("./modules/pageSpeedCheckModule");
|
|
|
|
//****************************************
|
|
// Checks
|
|
//****************************************
|
|
|
|
const {
|
|
createCheck,
|
|
getChecksCount,
|
|
getChecks,
|
|
getTeamChecks,
|
|
deleteChecks,
|
|
deleteChecksByTeamId,
|
|
updateChecksTTL,
|
|
} = require("./modules/checkModule");
|
|
|
|
//****************************************
|
|
// Maintenance Window
|
|
//****************************************
|
|
const {
|
|
createMaintenanceWindow,
|
|
getMaintenanceWindowById,
|
|
getMaintenanceWindowsByTeamId,
|
|
getMaintenanceWindowsByMonitorId,
|
|
deleteMaintenanceWindowById,
|
|
deleteMaintenanceWindowByMonitorId,
|
|
deleteMaintenanceWindowByUserId,
|
|
editMaintenanceWindowById,
|
|
} = require("./modules/maintenanceWindowModule");
|
|
|
|
//****************************************
|
|
// Notifications
|
|
//****************************************
|
|
const {
|
|
createNotification,
|
|
getNotificationsByMonitorId,
|
|
deleteNotificationsByMonitorId,
|
|
} = require("./modules/notificationModule");
|
|
|
|
//****************************************
|
|
// AppSettings
|
|
//****************************************
|
|
const {
|
|
getAppSettings,
|
|
updateAppSettings,
|
|
} = require("./modules/settingsModule");
|
|
|
|
module.exports = {
|
|
connect,
|
|
insertUser,
|
|
getUserByEmail,
|
|
updateUser,
|
|
deleteUser,
|
|
deleteTeam,
|
|
deleteAllOtherUsers,
|
|
getAllUsers,
|
|
logoutUser,
|
|
requestInviteToken,
|
|
getInviteToken,
|
|
getInviteTokenAndDelete,
|
|
requestRecoveryToken,
|
|
validateRecoveryToken,
|
|
resetPassword,
|
|
checkSuperadmin,
|
|
getAllMonitors,
|
|
getMonitorStatsById,
|
|
getMonitorById,
|
|
getMonitorsAndSummaryByTeamId,
|
|
getMonitorsByTeamId,
|
|
createMonitor,
|
|
deleteMonitor,
|
|
deleteAllMonitors,
|
|
editMonitor,
|
|
addDemoMonitors,
|
|
createCheck,
|
|
getChecksCount,
|
|
getChecks,
|
|
getTeamChecks,
|
|
deleteChecks,
|
|
deleteChecksByTeamId,
|
|
updateChecksTTL,
|
|
deleteMonitorsByUserId,
|
|
createPageSpeedCheck,
|
|
getPageSpeedChecks,
|
|
deletePageSpeedChecksByMonitorId,
|
|
createMaintenanceWindow,
|
|
getMaintenanceWindowsByTeamId,
|
|
getMaintenanceWindowById,
|
|
getMaintenanceWindowsByMonitorId,
|
|
deleteMaintenanceWindowById,
|
|
deleteMaintenanceWindowByMonitorId,
|
|
deleteMaintenanceWindowByUserId,
|
|
editMaintenanceWindowById,
|
|
createNotification,
|
|
getNotificationsByMonitorId,
|
|
deleteNotificationsByMonitorId,
|
|
getAppSettings,
|
|
updateAppSettings,
|
|
};
|