From d4a8023a76467981a353f69cbc79f190d2427a82 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Fri, 20 Mar 2026 11:47:22 -0700 Subject: [PATCH] monitors --- server/src/controllers/monitorController.ts | 25 +++++++++++++++++++-- server/src/routes/monitorRoute.ts | 12 ++++------ 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/server/src/controllers/monitorController.ts b/server/src/controllers/monitorController.ts index 9a2b7b774..b3b03ed57 100644 --- a/server/src/controllers/monitorController.ts +++ b/server/src/controllers/monitorController.ts @@ -16,11 +16,32 @@ import { importMonitorsBodyValidation, } from "@/validation/monitorValidation.js"; import sslChecker from "ssl-checker"; -import { fetchMonitorCertificate, requireTeamId, requireUserId } from "./controllerUtils.js"; +import { fetchMonitorCertificate, requireTeamId, requireUserId } from "@/controllers/controllerUtils.js"; import { IMonitorService } from "@/service/index.js"; const SERVICE_NAME = "monitorController"; -class MonitorController { + +export interface IMonitorController { + getMonitorCertificate: (req: Request, res: Response, next: NextFunction) => Promise; + getUptimeDetailsById: (req: Request, res: Response, next: NextFunction) => Promise; + getHardwareDetailsById: (req: Request, res: Response, next: NextFunction) => Promise; + getPageSpeedDetailsById: (req: Request, res: Response, next: NextFunction) => Promise; + getGeoChecksByMonitorId: (req: Request, res: Response, next: NextFunction) => Promise; + getMonitorById: (req: Request, res: Response, next: NextFunction) => Promise; + createMonitor: (req: Request, res: Response, next: NextFunction) => Promise; + importMonitorsFromJSON: (req: Request, res: Response, next: NextFunction) => Promise; + deleteMonitor: (req: Request, res: Response, next: NextFunction) => Promise; + deleteAllMonitors: (req: Request, res: Response, next: NextFunction) => Promise; + editMonitor: (req: Request, res: Response, next: NextFunction) => Promise; + pauseMonitor: (req: Request, res: Response, next: NextFunction) => Promise; + addDemoMonitors: (req: Request, res: Response, next: NextFunction) => Promise; + getMonitorsByTeamId: (req: Request, res: Response, next: NextFunction) => Promise; + getMonitorsWithChecksByTeamId: (req: Request, res: Response, next: NextFunction) => Promise; + exportMonitorsToJSON: (req: Request, res: Response, next: NextFunction) => Promise; + getAllGames: (req: Request, res: Response, next: NextFunction) => Promise; + getGroupsByTeamId: (req: Request, res: Response, next: NextFunction) => Promise; +} +class MonitorController implements IMonitorController { static SERVICE_NAME = SERVICE_NAME; private monitorService: IMonitorService; diff --git a/server/src/routes/monitorRoute.ts b/server/src/routes/monitorRoute.ts index 7cd87ee1e..2e994fd01 100755 --- a/server/src/routes/monitorRoute.ts +++ b/server/src/routes/monitorRoute.ts @@ -1,15 +1,11 @@ import { Router } from "express"; import { isAllowed } from "@/middleware/isAllowed.js"; -import multer from "multer"; -import { fetchMonitorCertificate } from "@/controllers/controllerUtils.js"; -const upload = multer({ - storage: multer.memoryStorage(), // Store file in memory as Buffer -}); +import { IMonitorController } from "@/controllers/monitorController.js"; class MonitorRoutes { private router: Router; - private monitorController: any; - constructor(monitorController: any) { + private monitorController: IMonitorController; + constructor(monitorController: IMonitorController) { this.router = Router(); this.monitorController = monitorController; this.initRoutes(); @@ -38,7 +34,7 @@ class MonitorRoutes { // Util routes this.router.get("/certificate/:monitorId", (req, res, next) => { - this.monitorController.getMonitorCertificate(req, res, next, fetchMonitorCertificate); + this.monitorController.getMonitorCertificate(req, res, next); }); // General monitor CRUD routes