migrate to esm

This commit is contained in:
Alex Holliday committed 2024-10-15 11:57:37 +08:00
1 parent c2e00375c1
commit f057807b56
52 files changed
+296 -302

No files matched your search

+1 -1
View File
@@ -12,4 +12,4 @@ const connectDbAndRunServer = async (app, db) => {
}
};
module.exports = { connectDbAndRunServer };
export { connectDbAndRunServer };
+14 -13
View File
@@ -1,4 +1,4 @@
const {
import {
registrationBodyValidation,
loginValidation,
editUserParamValidation,
@@ -6,15 +6,16 @@ const {
recoveryValidation,
recoveryTokenValidation,
newPasswordValidation,
} = require("../validation/joi");
const logger = require("../utils/logger");
require("dotenv").config();
const { errorMessages, successMessages } = require("../utils/messages");
const jwt = require("jsonwebtoken");
const SERVICE_NAME = "AuthController";
const { getTokenFromHeaders } = require("../utils/utils");
const crypto = require("crypto");
const { handleValidationError, handleError } = require("./controllerUtils");
} from "../validation/joi.js";
import logger from "../utils/logger.js";
import dotenv from "dotenv";
import { errorMessages, successMessages } from "../utils/messages.js";
import jwt from "jsonwebtoken";
import { getTokenFromHeaders } from "../utils/utils.js";
import crypto from "crypto";
import { handleValidationError, handleError } from "./controllerUtils.js";
dotenv.config();
/**
* Creates and returns JWT token with an arbitrary payload
@@ -238,7 +239,7 @@ const editUser = async (req, res, next) => {
* @returns {Object} The response object with a success status, a message indicating the existence of a superadmin, and a boolean indicating the existence of a superadmin.
* @throws {Error} If there is an error during the process.
*/
const checkSuperAdminExists = async (req, res, next) => {
const checkSuperadminExists = async (req, res, next) => {
try {
const superAdminExists = await req.db.checkSuperadmin(req, res);
return res.status(200).json({
@@ -440,12 +441,12 @@ const getAllUsers = async (req, res) => {
}
};
module.exports = {
export {
issueToken,
registerUser,
loginUser,
editUser,
checkSuperadminExists: checkSuperAdminExists,
checkSuperadminExists,
requestRecovery,
validateRecovery,
resetPassword,
+8 -7
View File
@@ -1,4 +1,4 @@
const {
import {
createCheckParamValidation,
createCheckBodyValidation,
getChecksParamValidation,
@@ -8,12 +8,13 @@ const {
deleteChecksParamValidation,
deleteChecksByTeamIdParamValidation,
updateChecksTTLBodyValidation,
} = require("../validation/joi");
const { successMessages } = require("../utils/messages");
const jwt = require("jsonwebtoken");
const { getTokenFromHeaders } = require("../utils/utils");
} from "../validation/joi.js";
import { successMessages } from "../utils/messages.js";
import jwt from "jsonwebtoken";
import { getTokenFromHeaders } from "../utils/utils.js";
import { handleValidationError, handleError } from "./controllerUtils.js";
const SERVICE_NAME = "checkController";
const { handleValidationError, handleError } = require("./controllerUtils");
const createCheck = async (req, res, next) => {
try {
@@ -143,7 +144,7 @@ const updateChecksTTL = async (req, res, next) => {
}
};
module.exports = {
export default {
createCheck,
getChecks,
getTeamChecks,
+1 -4
View File
@@ -13,7 +13,4 @@ const handleError = (error, serviceName, method, status = 500) => {
return error;
};
module.exports = {
handleValidationError,
handleError,
};
export { handleValidationError, handleError };
+11 -11
View File
@@ -1,14 +1,17 @@
const {
import {
inviteRoleValidation,
inviteBodyValidation,
inviteVerificationBodyValidation,
} = require("../validation/joi");
const logger = require("../utils/logger");
require("dotenv").config();
const jwt = require("jsonwebtoken");
const { handleError, handleValidationError } = require("./controllerUtils");
} from "../validation/joi.js";
import logger from "../utils/logger.js";
import dotenv from "dotenv";
import jwt from "jsonwebtoken";
import { handleError, handleValidationError } from "./controllerUtils.js";
import { getTokenFromHeaders } from "../utils/utils.js";
dotenv.config();
const SERVICE_NAME = "inviteController";
const { getTokenFromHeaders } = require("../utils/utils");
/**
* Issues an invitation to a new user. Only admins can invite new users. An invitation token is created and sent via email.
@@ -82,7 +85,4 @@ const inviteVerifyController = async (req, res, next) => {
}
};
module.exports = {
issueInvitation,
inviteVerifyController,
};
export { issueInvitation, inviteVerifyController };
@@ -1,4 +1,4 @@
const {
import {
createMaintenanceWindowBodyValidation,
editMaintenanceWindowByIdParamValidation,
editMaintenanceByIdWindowBodyValidation,
@@ -6,11 +6,12 @@ const {
getMaintenanceWindowsByMonitorIdParamValidation,
getMaintenanceWindowsByTeamIdQueryValidation,
deleteMaintenanceWindowByIdParamValidation,
} = require("../validation/joi");
const jwt = require("jsonwebtoken");
const { getTokenFromHeaders } = require("../utils/utils");
const { successMessages } = require("../utils/messages");
const { handleValidationError, handleError } = require("./controllerUtils");
} from "../validation/joi.js";
import jwt from "jsonwebtoken";
import { getTokenFromHeaders } from "../utils/utils.js";
import { successMessages } from "../utils/messages.js";
import { handleValidationError, handleError } from "./controllerUtils.js";
const SERVICE_NAME = "maintenanceWindowController";
const createMaintenanceWindows = async (req, res, next) => {
@@ -160,7 +161,7 @@ const editMaintenanceWindow = async (req, res, next) => {
}
};
module.exports = {
export default {
createMaintenanceWindows,
getMaintenanceWindowById,
getMaintenanceWindowsByTeamId,
+9 -9
View File
@@ -1,4 +1,4 @@
const {
import {
getMonitorByIdParamValidation,
getMonitorByIdQueryValidation,
getMonitorsByTeamIdValidation,
@@ -11,15 +11,15 @@ const {
getMonitorStatsByIdParamValidation,
getMonitorStatsByIdQueryValidation,
getCertificateParamValidation,
} = require("../validation/joi");
} from "../validation/joi.js";
const sslChecker = require("ssl-checker");
import sslChecker from "ssl-checker";
const SERVICE_NAME = "monitorController";
const { errorMessages, successMessages } = require("../utils/messages");
const jwt = require("jsonwebtoken");
const { getTokenFromHeaders } = require("../utils/utils");
const logger = require("../utils/logger");
const { handleError, handleValidationError } = require("./controllerUtils");
import { errorMessages, successMessages } from "../utils/messages.js";
import jwt from "jsonwebtoken";
import { getTokenFromHeaders } from "../utils/utils.js";
import logger from "../utils/logger.js";
import { handleError, handleValidationError } from "./controllerUtils.js";
/**
* Returns all monitors
@@ -477,7 +477,7 @@ const addDemoMonitors = async (req, res, next) => {
}
};
module.exports = {
export default {
getAllMonitors,
getMonitorStatsById,
getMonitorCertificate,
+4 -3
View File
@@ -1,5 +1,6 @@
const { handleError } = require("./controllerUtils");
const { errorMessages, successMessages } = require("../utils/messages");
import { handleError } from "./controllerUtils.js";
import { errorMessages, successMessages } from "../utils/messages.js";
const SERVICE_NAME = "JobQueueController";
const getMetrics = async (req, res, next) => {
@@ -55,7 +56,7 @@ const obliterateQueue = async (req, res, next) => {
}
};
module.exports = {
export default {
getMetrics,
getJobs,
addJob,
+4 -4
View File
@@ -1,7 +1,7 @@
const { successMessages } = require("../utils/messages");
import { successMessages } from "../utils/messages.js";
import { updateAppSettingsBodyValidation } from "../validation/joi.js";
import { handleValidationError, handleError } from "./controllerUtils.js";
const SERVICE_NAME = "SettingsController";
const { updateAppSettingsBodyValidation } = require("../validation/joi");
const { handleValidationError, handleError } = require("./controllerUtils");
const getAppSettings = async (req, res, next) => {
try {
@@ -39,7 +39,7 @@ const updateAppSettings = async (req, res, next) => {
}
};
module.exports = {
export default {
getAppSettings,
updateAppSettings,
};
+2 -2
View File
@@ -1,4 +1,4 @@
const mongoose = require("mongoose");
import mongoose from "mongoose";
const AppSettingsSchema = mongoose.Schema(
{
@@ -78,4 +78,4 @@ const AppSettingsSchema = mongoose.Schema(
}
);
module.exports = mongoose.model("AppSettings", AppSettingsSchema);
export default mongoose.model("AppSettings", AppSettingsSchema);
+4 -5
View File
@@ -1,6 +1,6 @@
const mongoose = require("mongoose");
const EmailService = require("../../service/emailService");
const Notification = require("./Notification");
import mongoose from "mongoose";
import EmailService from "../../service/emailService.js";
import Notification from "./Notification.js";
/**
* Check Schema for MongoDB collection.
@@ -73,5 +73,4 @@ const CheckSchema = mongoose.Schema(
);
CheckSchema.index({ createdAt: 1 });
module.exports = mongoose.model("Check", CheckSchema);
export default mongoose.model("Check", CheckSchema);
+2 -3
View File
@@ -1,5 +1,4 @@
const mongoose = require("mongoose");
import mongoose from "mongoose";
const InviteTokenSchema = mongoose.Schema(
{
email: {
@@ -32,4 +31,4 @@ const InviteTokenSchema = mongoose.Schema(
}
);
module.exports = mongoose.model("InviteToken", InviteTokenSchema);
export default mongoose.model("InviteToken", InviteTokenSchema);
+2 -3
View File
@@ -1,5 +1,4 @@
const mongoose = require("mongoose");
import mongoose from "mongoose";
/**
* MaintenanceWindow Schema
* @module MaintenanceWindow
@@ -66,4 +65,4 @@ const MaintenanceWindow = mongoose.Schema(
}
);
module.exports = mongoose.model("MaintenanceWindow", MaintenanceWindow);
export default mongoose.model("MaintenanceWindow", MaintenanceWindow);
+3 -3
View File
@@ -1,5 +1,5 @@
const mongoose = require("mongoose");
const Notification = require("./Notification");
import mongoose from "mongoose";
import Notification from "./Notification.js";
const MonitorSchema = mongoose.Schema(
{
@@ -60,4 +60,4 @@ const MonitorSchema = mongoose.Schema(
}
);
module.exports = mongoose.model("Monitor", MonitorSchema);
export default mongoose.model("Monitor", MonitorSchema);
+2 -4
View File
@@ -1,5 +1,4 @@
const mongoose = require("mongoose");
import mongoose from "mongoose";
const NotificationSchema = mongoose.Schema(
{
monitorId: {
@@ -22,5 +21,4 @@ const NotificationSchema = mongoose.Schema(
timestamps: true,
}
);
module.exports = mongoose.model("Notification", NotificationSchema);
export default mongoose.model("Notification", NotificationSchema);
+2 -3
View File
@@ -1,5 +1,4 @@
const mongoose = require("mongoose");
import mongoose from "mongoose";
const AuditSchema = mongoose.Schema({
id: { type: String, required: true },
title: { type: String, required: true },
@@ -109,4 +108,4 @@ PageSpeedCheck.pre("save", async function (next) {
}
});
module.exports = mongoose.model("PageSpeedCheck", PageSpeedCheck);
export default mongoose.model("PageSpeedCheck", PageSpeedCheck);
+2 -2
View File
@@ -1,4 +1,4 @@
const mongoose = require("mongoose");
import mongoose from "mongoose";
const RecoveryTokenSchema = mongoose.Schema(
{
@@ -22,4 +22,4 @@ const RecoveryTokenSchema = mongoose.Schema(
}
);
module.exports = mongoose.model("RecoveryToken", RecoveryTokenSchema);
export default mongoose.model("RecoveryToken", RecoveryTokenSchema);
+2 -4
View File
@@ -1,5 +1,4 @@
const mongoose = require("mongoose");
import mongoose from "mongoose";
const TeamSchema = mongoose.Schema(
{
email: {
@@ -12,5 +11,4 @@ const TeamSchema = mongoose.Schema(
timestamps: true,
}
);
module.exports = mongoose.model("Team", TeamSchema);
export default mongoose.model("Team", TeamSchema);
+3 -3
View File
@@ -1,5 +1,5 @@
const mongoose = require("mongoose");
const bcrypt = require("bcrypt");
import mongoose from "mongoose";
import bcrypt from "bcrypt";
const UserSchema = mongoose.Schema(
{
@@ -84,4 +84,4 @@ User.init().then(() => {
console.log("User model initialized");
});
module.exports = mongoose.model("User", UserSchema);
export default mongoose.model("User", UserSchema);
+21 -24
View File
@@ -1,6 +1,6 @@
const mongoose = require("mongoose");
const UserModel = require("../models/User");
const AppSettings = require("../models/AppSettings");
import mongoose from "mongoose";
import UserModel from "../models/User.js";
import AppSettings from "../models/AppSettings.js";
//****************************************
// DB Connection
@@ -41,7 +41,7 @@ const checkSuperadmin = async (req, res) => {
// User Operations
//****************************************
const {
import {
insertUser,
getUserByEmail,
updateUser,
@@ -50,32 +50,32 @@ const {
deleteAllOtherUsers,
getAllUsers,
logoutUser,
} = require("./modules/userModule");
} from "./modules/userModule.js";
//****************************************
// Invite Token Operations
//****************************************
const {
import {
requestInviteToken,
getInviteToken,
getInviteTokenAndDelete,
} = require("./modules/inviteModule");
} from "./modules/inviteModule.js";
//****************************************
// Recovery Operations
//****************************************
const {
import {
requestRecoveryToken,
validateRecoveryToken,
resetPassword,
} = require("./modules/recoveryModule");
} from "./modules/recoveryModule.js";
//****************************************
// Monitors
//****************************************
const {
import {
getAllMonitors,
getMonitorStatsById,
getMonitorById,
@@ -87,23 +87,23 @@ const {
deleteMonitorsByUserId,
editMonitor,
addDemoMonitors,
} = require("./modules/monitorModule");
} from "./modules/monitorModule.js";
//****************************************
// Page Speed Checks
//****************************************
const {
import {
createPageSpeedCheck,
getPageSpeedChecks,
deletePageSpeedChecksByMonitorId,
} = require("./modules/pageSpeedCheckModule");
} from "./modules/pageSpeedCheckModule.js";
//****************************************
// Checks
//****************************************
const {
import {
createCheck,
getChecksCount,
getChecks,
@@ -111,12 +111,12 @@ const {
deleteChecks,
deleteChecksByTeamId,
updateChecksTTL,
} = require("./modules/checkModule");
} from "./modules/checkModule.js";
//****************************************
// Maintenance Window
//****************************************
const {
import {
createMaintenanceWindow,
getMaintenanceWindowById,
getMaintenanceWindowsByTeamId,
@@ -125,26 +125,23 @@ const {
deleteMaintenanceWindowByMonitorId,
deleteMaintenanceWindowByUserId,
editMaintenanceWindowById,
} = require("./modules/maintenanceWindowModule");
} from "./modules/maintenanceWindowModule.js";
//****************************************
// Notifications
//****************************************
const {
import {
createNotification,
getNotificationsByMonitorId,
deleteNotificationsByMonitorId,
} = require("./modules/notificationModule");
} from "./modules/notificationModule.js";
//****************************************
// AppSettings
//****************************************
const {
getAppSettings,
updateAppSettings,
} = require("./modules/settingsModule");
import { getAppSettings, updateAppSettings } from "./modules/settingsModule.js";
module.exports = {
export default {
connect,
insertUser,
getUserByEmail,
+5 -5
View File
@@ -1,7 +1,7 @@
const Check = require("../../models/Check");
const Monitor = require("../../models/Monitor");
const User = require("../../models/User");
const logger = require("../../../utils/logger");
import Check from "../../models/Check.js";
import Monitor from "../../models/Monitor.js";
import User from "../../models/User.js";
import logger from "../../../utils/logger.js";
const SERVICE_NAME = "checkModule";
const dateRangeLookup = {
day: new Date(new Date().setDate(new Date().getDate() - 1)),
@@ -274,7 +274,7 @@ const updateChecksTTL = async (teamId, ttl) => {
}
};
module.exports = {
export {
createCheck,
getChecksCount,
getChecks,
+5 -9
View File
@@ -1,8 +1,8 @@
const InviteToken = require("../../models/InviteToken");
const crypto = require("crypto");
const { errorMessages } = require("../../../utils/messages");
const SERVICE_NAME = "inviteModule";
import InviteToken from "../../models/InviteToken.js";
import crypto from "crypto";
import { errorMessages } from "../../../utils/messages.js";
const SERVICE_NAME = "inviteModule";
/**
* Request an invite token for a user.
*
@@ -83,8 +83,4 @@ const getInviteTokenAndDelete = async (token) => {
}
};
module.exports = {
requestInviteToken,
getInviteToken,
getInviteTokenAndDelete,
};
export { requestInviteToken, getInviteToken, getInviteTokenAndDelete };
@@ -1,4 +1,4 @@
const MaintenanceWindow = require("../../models/MaintenanceWindow");
import MaintenanceWindow from "../../models/MaintenanceWindow.js";
const SERVICE_NAME = "maintenanceWindowModule";
/**
@@ -220,7 +220,7 @@ const editMaintenanceWindowById = async (
}
};
module.exports = {
export {
createMaintenanceWindow,
getMaintenanceWindowById,
getMaintenanceWindowsByTeamId,
+20 -8
View File
@@ -1,10 +1,22 @@
const Monitor = require("../../models/Monitor");
const Check = require("../../models/Check");
const PageSpeedCheck = require("../../models/PageSpeedCheck");
const { errorMessages } = require("../../../utils/messages");
const Notification = require("../../models/Notification");
const { NormalizeData } = require("../../../utils/dataUtils");
const demoMonitors = require("../../../utils/demoMonitors.json");
import Monitor from "../../models/Monitor.js";
import Check from "../../models/Check.js";
import PageSpeedCheck from "../../models/PageSpeedCheck.js";
import { errorMessages } from "../../../utils/messages.js";
import Notification from "../../models/Notification.js";
import { NormalizeData } from "../../../utils/dataUtils.js";
import fs from "fs";
import path from "path";
import { fileURLToPath } from "url";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const demoMonitorsPath = path.resolve(
__dirname,
"../../../utils/demoMonitors.json"
);
const demoMonitors = JSON.parse(fs.readFileSync(demoMonitorsPath, "utf8"));
const SERVICE_NAME = "monitorModule";
/**
@@ -572,7 +584,7 @@ const addDemoMonitors = async (userId, teamId) => {
}
};
module.exports = {
export {
getAllMonitors,
getMonitorStatsById,
getMonitorById,
@@ -1,4 +1,4 @@
const Notification = require("../../models/Notification");
import Notification from "../../models/Notification.js";
const SERVICE_NAME = "notificationModule";
/**
* Creates a new notification.
@@ -49,7 +49,7 @@ const deleteNotificationsByMonitorId = async (monitorId) => {
}
};
module.exports = {
export {
createNotification,
getNotificationsByMonitorId,
deleteNotificationsByMonitorId,
@@ -1,4 +1,4 @@
const PageSpeedCheck = require("../../models/PageSpeedCheck");
import PageSpeedCheck from "../../models/PageSpeedCheck.js";
const SERVICE_NAME = "pageSpeedCheckModule";
/**
* Create a PageSpeed check for a monitor
@@ -63,7 +63,7 @@ const deletePageSpeedChecksByMonitorId = async (monitorId) => {
}
};
module.exports = {
export {
createPageSpeedCheck,
getPageSpeedChecks,
deletePageSpeedChecksByMonitorId,
+6 -9
View File
@@ -1,7 +1,8 @@
const UserModel = require("../../models/User");
const RecoveryToken = require("../../models/RecoveryToken");
const crypto = require("crypto");
const { errorMessages } = require("../../../utils/messages");
import UserModel from "../../models/User.js";
import RecoveryToken from "../../models/RecoveryToken.js";
import crypto from "crypto";
import { errorMessages } from "../../../utils/messages.js";
const SERVICE_NAME = "recoveryModule";
/**
@@ -81,8 +82,4 @@ const resetPassword = async (req, res) => {
}
};
module.exports = {
requestRecoveryToken,
validateRecoveryToken,
resetPassword,
};
export { requestRecoveryToken, validateRecoveryToken, resetPassword };
+2 -5
View File
@@ -1,4 +1,4 @@
const AppSettings = require("../../models/AppSettings");
import AppSettings from "../../models/AppSettings.js";
const SERVICE_NAME = "SettingsModule";
const getAppSettings = async () => {
@@ -27,7 +27,4 @@ const updateAppSettings = async (newSettings) => {
}
};
module.exports = {
getAppSettings,
updateAppSettings,
};
export { getAppSettings, updateAppSettings };
+7 -7
View File
@@ -1,11 +1,11 @@
const UserModel = require("../../models/User");
const TeamModel = require("../../models/Team");
const { errorMessages } = require("../../../utils/messages");
const { GenerateAvatarImage } = require("../../../utils/imageProcessing");
import UserModel from "../../models/User.js";
import TeamModel from "../../models/Team.js";
import { errorMessages } from "../../../utils/messages.js";
import { GenerateAvatarImage } from "../../../utils/imageProcessing.js";
const DUPLICATE_KEY_CODE = 11000; // MongoDB error code for duplicate key
const { ParseBoolean } = require("../../../utils/utils");
SERVICE_NAME = "userModule";
import { ParseBoolean } from "../../../utils/utils.js";
const SERVICE_NAME = "userModule";
/**
* Insert a User
@@ -208,7 +208,7 @@ const logoutUser = async (userId) => {
}
};
module.exports = {
export {
insertUser,
getUserByEmail,
updateUser,
+32 -27
View File
@@ -1,30 +1,35 @@
const path = require("path");
const fs = require("fs");
const swaggerUi = require("swagger-ui-express");
import path from "path";
import fs from "fs";
import swaggerUi from "swagger-ui-express";
const express = require("express");
const helmet = require("helmet");
const cors = require("cors");
const logger = require("./utils/logger");
const { verifyJWT } = require("./middleware/verifyJWT");
const { handleErrors } = require("./middleware/handleErrors");
const { errorMessages } = require("./utils/messages");
const authRouter = require("./routes/authRoute");
const inviteRouter = require("./routes/inviteRoute");
const monitorRouter = require("./routes/monitorRoute");
const checkRouter = require("./routes/checkRoute");
const maintenanceWindowRouter = require("./routes/maintenanceWindowRoute");
const settingsRouter = require("./routes/settingsRoute");
import express from "express";
import helmet from "helmet";
import cors from "cors";
import logger from "./utils/logger.js";
import { verifyJWT } from "./middleware/verifyJWT.js";
import { handleErrors } from "./middleware/handleErrors.js";
import { errorMessages } from "./utils/messages.js";
import authRouter from "./routes/authRoute.js";
import inviteRouter from "./routes/inviteRoute.js";
import monitorRouter from "./routes/monitorRoute.js";
import checkRouter from "./routes/checkRoute.js";
import maintenanceWindowRouter from "./routes/maintenanceWindowRoute.js";
import settingsRouter from "./routes/settingsRoute.js";
import { fileURLToPath } from "url";
const { connectDbAndRunServer } = require("./configs/db");
const queueRouter = require("./routes/queueRoute");
const JobQueue = require("./service/jobQueue");
const NetworkService = require("./service/networkService");
const EmailService = require("./service/emailService");
const SettingsService = require("./service/settingsService");
import { connectDbAndRunServer } from "./configs/db.js";
import queueRouter from "./routes/queueRoute.js";
import JobQueue from "./service/jobQueue.js";
import NetworkService from "./service/networkService.js";
import EmailService from "./service/emailService.js";
import SettingsService from "./service/settingsService.js";
import db from "./db/mongo/MongoDB.js";
const SERVICE_NAME = "Server";
let cleaningUp = false;
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const openApiSpec = JSON.parse(
fs.readFileSync(path.join(__dirname, "openapi.json"), "utf8")
);
@@ -42,16 +47,16 @@ const startApp = async () => {
// const db = require("./db/MongoDB");
//
// **************************
const DB_TYPE = {
MongoDB: () => require("./db/mongo/MongoDB"),
FakedDB: () => require("./db/FakeDb"),
};
// const DB_TYPE = {
// MongoDB: async () => (await import("./db/mongo/MongoDB.js")).default,
// FakedDB: async () => (await import("./db/FakeDb.js")).default,
// };
// const db = DB_TYPE[process.env.DB_TYPE]
// ? DB_TYPE[process.env.DB_TYPE]()
// : require("./db/FakeDb");
const db = DB_TYPE.MongoDB();
// const db = DB_TYPE.MongoDB();
const app = express();
+3 -3
View File
@@ -1,5 +1,5 @@
const logger = require("../utils/logger");
const { errorMessages } = require("../utils/messages");
import logger from "../utils/logger.js";
import { errorMessages } from "../utils/messages.js";
const handleErrors = (error, req, res, next) => {
const status = error.status || 500;
@@ -12,4 +12,4 @@ const handleErrors = (error, req, res, next) => {
res.status(status).json({ success: false, msg: message });
};
module.exports = { handleErrors };
export { handleErrors };
+3 -3
View File
@@ -1,7 +1,7 @@
const jwt = require("jsonwebtoken");
import jwt from "jsonwebtoken";
const TOKEN_PREFIX = "Bearer ";
const SERVICE_NAME = "allowedRoles";
const { errorMessages } = require("../utils/messages");
import { errorMessages } from "../utils/messages.js";
const isAllowed = (allowedRoles) => {
return (req, res, next) => {
@@ -52,4 +52,4 @@ const isAllowed = (allowedRoles) => {
};
};
module.exports = { isAllowed };
export { isAllowed };
+3 -3
View File
@@ -1,7 +1,7 @@
const jwt = require("jsonwebtoken");
import jwt from "jsonwebtoken";
const SERVICE_NAME = "verifyJWT";
const TOKEN_PREFIX = "Bearer ";
const { errorMessages } = require("../utils/messages");
import { errorMessages } from "../utils/messages.js";
/**
* Verifies the JWT token
* @function
@@ -48,4 +48,4 @@ const verifyJWT = (req, res, next) => {
});
};
module.exports = { verifyJWT };
export { verifyJWT };
+3 -3
View File
@@ -1,6 +1,6 @@
const logger = require("../utils/logger");
import logger from "../utils/logger.js";
import { errorMessages } from "../utils/messages.js";
const SERVICE_NAME = "verifyOwnership";
const { errorMessages } = require("../utils/messages");
const verifyOwnership = (Model, paramName) => {
return async (req, res, next) => {
@@ -46,4 +46,4 @@ const verifyOwnership = (Model, paramName) => {
};
};
module.exports = { verifyOwnership };
export { verifyOwnership };
+1
View File
@@ -3,6 +3,7 @@
"version": "1.0.0",
"description": "",
"main": "index.js",
"type": "module",
"scripts": {
"test": "nyc mocha",
"dev": "nodemon index.js"
+13 -16
View File
@@ -1,12 +1,14 @@
const router = require("express").Router();
const { verifyJWT } = require("../middleware/verifyJWT");
const { verifyOwnership } = require("../middleware/verifyOwnership");
const { isAllowed } = require("../middleware/isAllowed");
const multer = require("multer");
const upload = multer();
const User = require("../db/models/User");
import { Router } from "express";
import { verifyJWT } from "../middleware/verifyJWT.js";
import { verifyOwnership } from "../middleware/verifyOwnership.js";
import { isAllowed } from "../middleware/isAllowed.js";
import multer from "multer";
import User from "../db/models/User.js";
const {
const router = Router();
const upload = multer();
import {
registerUser,
loginUser,
editUser,
@@ -16,17 +18,12 @@ const {
checkSuperadminExists,
getAllUsers,
deleteUser,
} = require("../controllers/authController");
} from "../controllers/authController.js";
//Auth routes
router.post("/register", upload.single("profileImage"), registerUser);
router.post("/login", loginUser);
router.put(
"/user/:userId",
upload.single("profileImage"),
verifyJWT,
editUser
);
router.put("/user/:userId", upload.single("profileImage"), verifyJWT, editUser);
router.get("/users/superadmin", checkSuperadminExists);
router.get(
"/users",
@@ -46,4 +43,4 @@ router.post("/recovery/request", requestRecovery);
router.post("/recovery/validate", validateRecovery);
router.post("/recovery/reset/", resetPassword);
module.exports = router;
export default router;
+8 -6
View File
@@ -1,8 +1,10 @@
const router = require("express").Router();
const checkController = require("../controllers/checkController");
const { verifyOwnership } = require("../middleware/verifyOwnership");
const { isAllowed } = require("../middleware/isAllowed");
const Monitor = require("../db/models/Monitor");
import { Router } from "express";
import checkController from "../controllers/checkController.js";
import { verifyOwnership } from "../middleware/verifyOwnership.js";
import { isAllowed } from "../middleware/isAllowed.js";
import Monitor from "../db/models/Monitor.js";
const router = Router();
router.get("/:monitorId", checkController.getChecks);
router.post(
@@ -30,4 +32,4 @@ router.put(
checkController.updateChecksTTL
);
module.exports = router;
export default router;
+8 -7
View File
@@ -1,11 +1,12 @@
const router = require("express").Router();
const { verifyJWT } = require("../middleware/verifyJWT");
const { isAllowed } = require("../middleware/isAllowed");
const {
import { Router } from "express";
import { verifyJWT } from "../middleware/verifyJWT.js";
import { isAllowed } from "../middleware/isAllowed.js";
import {
issueInvitation,
inviteVerifyController,
} = require("../controllers/inviteController");
} from "../controllers/inviteController.js";
const router = Router();
router.post(
"/",
@@ -15,4 +16,4 @@ router.post(
);
router.post("/verify", issueInvitation);
module.exports = router;
export default router;
+7 -5
View File
@@ -1,7 +1,9 @@
const router = require("express").Router();
const maintenanceWindowController = require("../controllers/maintenanceWindowController");
const { verifyOwnership } = require("../middleware/verifyOwnership");
const Monitor = require("../db/models/Monitor");
import { Router } from "express";
import maintenanceWindowController from "../controllers/maintenanceWindowController.js";
import { verifyOwnership } from "../middleware/verifyOwnership.js";
import Monitor from "../db/models/Monitor.js";
const router = Router();
router.post("/", maintenanceWindowController.createMaintenanceWindows);
@@ -19,4 +21,4 @@ router.put("/:id", maintenanceWindowController.editMaintenanceWindow);
router.delete("/:id", maintenanceWindowController.deleteMaintenanceWindow);
module.exports = router;
export default router;
+6 -4
View File
@@ -1,6 +1,8 @@
const router = require("express").Router();
const monitorController = require("../controllers/monitorController");
const { isAllowed } = require("../middleware/isAllowed");
import { Router } from "express";
import monitorController from "../controllers/monitorController.js";
import { isAllowed } from "../middleware/isAllowed.js";
const router = Router();
router.get("/", monitorController.getAllMonitors);
router.get("/stats/:monitorId", monitorController.getMonitorStatsById);
@@ -48,4 +50,4 @@ router.post(
monitorController.addDemoMonitors
);
module.exports = router;
export default router;
+4 -3
View File
@@ -1,6 +1,7 @@
const router = require("express").Router();
const queueController = require("../controllers/queueController");
import { Router } from "express";
import queueController from "../controllers/queueController.js";
const router = Router();
router.get("/metrics", queueController.getMetrics);
// Get Jobs
@@ -12,4 +13,4 @@ router.post("/jobs", queueController.addJob);
// Obliterate Queue
router.post("/obliterate", queueController.obliterateQueue);
module.exports = router;
export default router;
+6 -5
View File
@@ -1,7 +1,8 @@
const router = require("express").Router();
const settingsController = require("../controllers/settingsController");
const { isAllowed } = require("../middleware/isAllowed");
const Monitor = require("../db/models/Monitor");
import { Router } from "express";
import settingsController from "../controllers/settingsController.js";
import { isAllowed } from "../middleware/isAllowed.js";
const router = Router();
router.get("/", settingsController.getAppSettings);
router.put(
@@ -10,4 +11,4 @@ router.put(
settingsController.updateAppSettings
);
module.exports = router;
export default router;
+12 -8
View File
@@ -1,10 +1,15 @@
const fs = require("fs");
const path = require("path");
const nodemailer = require("nodemailer");
const { compile } = require("handlebars");
const mjml2html = require("mjml");
import fs from "fs";
import path from "path";
import nodemailer from "nodemailer";
import pkg from "handlebars";
const { compile } = pkg;
import mjml2html from "mjml";
import logger from "../utils/logger.js";
import { fileURLToPath } from "url";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const SERVICE_NAME = "EmailService";
const logger = require("../utils/logger");
/**
* Represents an email service that can load templates, build, and send emails.
@@ -134,5 +139,4 @@ class EmailService {
}
};
}
module.exports = EmailService;
export default EmailService;
+4 -4
View File
@@ -1,9 +1,9 @@
const { Queue, Worker, Job } = require("bullmq");
import { Queue, Worker, Job } from "bullmq";
const QUEUE_NAME = "monitors";
const JOBS_PER_WORKER = 5;
const logger = require("../utils/logger");
const { errorMessages, successMessages } = require("../utils/messages");
import logger from "../utils/logger.js";
import { errorMessages, successMessages } from "../utils/messages.js";
const SERVICE_NAME = "JobQueue";
/**
* JobQueue
@@ -360,4 +360,4 @@ class JobQueue {
}
}
module.exports = JobQueue;
export default JobQueue;
+6 -6
View File
@@ -1,8 +1,8 @@
const axios = require("axios");
const ping = require("ping");
const logger = require("../utils/logger");
const http = require("http");
const { errorMessages, successMessages } = require("../utils/messages");
import axios from "axios";
import ping from "ping";
import logger from "../utils/logger.js";
import http from "http";
import { errorMessages, successMessages } from "../utils/messages.js";
/**
* NetworkService
@@ -329,4 +329,4 @@ class NetworkService {
}
}
module.exports = NetworkService;
export default NetworkService;
+2 -3
View File
@@ -1,5 +1,4 @@
const { env } = require("process");
const AppSettings = require("../db/models/AppSettings");
import AppSettings from "../db/models/AppSettings.js";
const SERVICE_NAME = "SettingsService";
const envConfig = {
logLevel: undefined,
@@ -81,4 +80,4 @@ class SettingsService {
}
}
module.exports = SettingsService;
export default SettingsService;
+1 -3
View File
@@ -45,6 +45,4 @@ const NormalizeData = (checks, rangeMin, rangeMax) => {
}
};
module.exports = {
NormalizeData,
};
export { NormalizeData };
+2 -4
View File
@@ -1,4 +1,4 @@
const sharp = require("sharp");
import sharp from "sharp";
/**
* Generates a 64 * 64 pixel image from a given image
* @param {} file
@@ -22,6 +22,4 @@ const GenerateAvatarImage = async (file) => {
}
};
module.exports = {
GenerateAvatarImage,
};
export { GenerateAvatarImage };
+10 -10
View File
@@ -1,8 +1,8 @@
const winston = require('winston');
import winston from "winston";
/**
* @module
* @example
* logger.info("Registered a new user!")
* logger.info("Registered a new user!")
* logger.warn("User not found!")
* logger.error("Cannot save")
* @example
@@ -12,15 +12,15 @@ const winston = require('winston');
* logger.error("User not found!",{"service":"Auth"})
*/
const logger = winston.createLogger({
level: 'info',
format: winston.format.combine(
winston.format.timestamp(),
winston.format.json()
),
transports: [
level: "info",
format: winston.format.combine(
winston.format.timestamp(),
winston.format.json()
),
transports: [
new winston.transports.Console(),
new winston.transports.File({ filename: 'app.log' }),
new winston.transports.File({ filename: "app.log" }),
],
});
module.exports = logger;
export default logger;
+1 -4
View File
@@ -114,7 +114,4 @@ const successMessages = {
UPDATE_APP_SETTINGS: "Updated app settings successfully",
};
module.exports = {
errorMessages,
successMessages,
};
export { errorMessages, successMessages };
+1 -4
View File
@@ -27,7 +27,4 @@ const getTokenFromHeaders = (headers) => {
return parts[1];
};
module.exports = {
ParseBoolean,
getTokenFromHeaders,
};
export { ParseBoolean, getTokenFromHeaders };
+4 -7
View File
@@ -1,7 +1,4 @@
const exp = require("constants");
const joi = require("joi");
const { normalize } = require("path");
const { start } = require("repl");
import joi from "joi";
//****************************************
// Custom Validators
@@ -143,7 +140,7 @@ const inviteBodyValidation = joi.object({
teamId: joi.string().required(),
});
const inviteVerifciationBodyValidation = joi.object({
const inviteVerificationBodyValidation = joi.object({
token: joi.string().required(),
});
@@ -427,7 +424,7 @@ const updateAppSettingsBodyValidation = joi.object({
systemEmailPassword: joi.string().allow(""),
});
module.exports = {
export {
roleValidatior,
loginValidation,
registrationBodyValidation,
@@ -436,7 +433,7 @@ module.exports = {
newPasswordValidation,
inviteRoleValidation,
inviteBodyValidation,
inviteVerificationBodyValidation: inviteVerifciationBodyValidation,
inviteVerificationBodyValidation,
createMonitorBodyValidation,
getMonitorByIdParamValidation,
getMonitorByIdQueryValidation,