From 100cea64afa0e3423288a594b55a84a7ca091a10 Mon Sep 17 00:00:00 2001 From: Alexander Holliday Date: Wed, 30 Oct 2024 10:13:03 +0800 Subject: [PATCH] Revert "Fix/devops/docker compose" --- Docker/prod/docker-compose.yaml | 2 +- Server/db/models/Check.js | 127 +++++++++++++++-------------- Server/db/models/HardwareCheck.js | 34 +++++++- Server/db/models/PageSpeedCheck.js | 18 ++-- 4 files changed, 109 insertions(+), 72 deletions(-) diff --git a/Docker/prod/docker-compose.yaml b/Docker/prod/docker-compose.yaml index 24e6d1165..69202c8d7 100644 --- a/Docker/prod/docker-compose.yaml +++ b/Docker/prod/docker-compose.yaml @@ -2,7 +2,7 @@ services: client: image: uptime_client:latest environment: - UPTIME_APP_API_BASE_URL: "https://uptime-demo.bluewavelabs.ca/api/v1" + UPTIME_APP_API_BASE_URL: "http://localhost:5000/api/v1" ports: - "80:80" - "443:443" diff --git a/Server/db/models/Check.js b/Server/db/models/Check.js index ad50c208a..320ddefe9 100644 --- a/Server/db/models/Check.js +++ b/Server/db/models/Check.js @@ -1,63 +1,6 @@ import mongoose from "mongoose"; - -const BaseCheckSchema = mongoose.Schema({ - /** - * Reference to the associated Monitor document. - * - * @type {mongoose.Schema.Types.ObjectId} - */ - monitorId: { - type: mongoose.Schema.Types.ObjectId, - ref: "Monitor", - immutable: true, - index: true, - }, - /** - * Status of the check (true for up, false for down). - * - * @type {Boolean} - */ - status: { - type: Boolean, - index: true, - }, - /** - * Response time of the check in milliseconds. - * - * @type {Number} - */ - responseTime: { - type: Number, - }, - /** - * HTTP status code received during the check. - * - * @type {Number} - */ - statusCode: { - type: Number, - index: true, - }, - /** - * Message or description of the check result. - * - * @type {String} - */ - message: { - type: String, - }, - /** - * Expiry date of the check, auto-calculated to expire after 30 days. - * - * @type {Date} - */ - - expiry: { - type: Date, - default: Date.now, - expires: 60 * 60 * 24 * 30, // 30 days - }, -}); +import EmailService from "../../service/emailService.js"; +import Notification from "./Notification.js"; /** * Check Schema for MongoDB collection. @@ -65,7 +8,69 @@ const BaseCheckSchema = mongoose.Schema({ * Represents a check associated with a monitor, storing information * about the status and response of a particular check event. */ -const CheckSchema = mongoose.Schema({ ...BaseCheckSchema.obj }, { timestamps: true }); +const CheckSchema = mongoose.Schema( + { + /** + * Reference to the associated Monitor document. + * + * @type {mongoose.Schema.Types.ObjectId} + */ + monitorId: { + type: mongoose.Schema.Types.ObjectId, + ref: "Monitor", + immutable: true, + index: true, + }, + /** + * Status of the check (true for up, false for down). + * + * @type {Boolean} + */ + status: { + type: Boolean, + index: true, + }, + /** + * Response time of the check in milliseconds. + * + * @type {Number} + */ + responseTime: { + type: Number, + }, + /** + * HTTP status code received during the check. + * + * @type {Number} + */ + statusCode: { + type: Number, + index: true, + }, + /** + * Message or description of the check result. + * + * @type {String} + */ + message: { + type: String, + }, + /** + * Expiry date of the check, auto-calculated to expire after 30 days. + * + * @type {Date} + */ + + expiry: { + type: Date, + default: Date.now, + expires: 60 * 60 * 24 * 30, // 30 days + }, + }, + { + timestamps: true, // Adds createdAt and updatedAt timestamps + } +); + CheckSchema.index({ createdAt: 1 }); export default mongoose.model("Check", CheckSchema); -export { BaseCheckSchema }; diff --git a/Server/db/models/HardwareCheck.js b/Server/db/models/HardwareCheck.js index 75e4ac584..c307b9804 100644 --- a/Server/db/models/HardwareCheck.js +++ b/Server/db/models/HardwareCheck.js @@ -1,5 +1,5 @@ import mongoose from "mongoose"; -import { BaseCheckSchema } from "./Check.js"; + const cpuSchema = mongoose.Schema({ physical_core: { type: Number, default: 0 }, logical_core: { type: Number, default: 0 }, @@ -32,7 +32,35 @@ const hostSchema = mongoose.Schema({ const HardwareCheckSchema = mongoose.Schema( { - ...BaseCheckSchema.obj, + monitorId: { + type: mongoose.Schema.Types.ObjectId, + ref: "Monitor", + immutable: true, + index: true, + }, + + status: { + type: Boolean, + index: true, + }, + + responseTime: { + type: Number, + }, + + statusCode: { + type: Number, + index: true, + }, + + message: { + type: String, + }, + expiry: { + type: Date, + default: Date.now, + expires: 60 * 60 * 24 * 30, // 30 days + }, cpu: { type: cpuSchema, default: () => ({}), @@ -53,6 +81,4 @@ const HardwareCheckSchema = mongoose.Schema( { timestamps: true } ); -HardwareCheckSchema.index({ createdAt: 1 }); - export default mongoose.model("HardwareCheck", HardwareCheckSchema); diff --git a/Server/db/models/PageSpeedCheck.js b/Server/db/models/PageSpeedCheck.js index 4ebc60280..344cc685d 100644 --- a/Server/db/models/PageSpeedCheck.js +++ b/Server/db/models/PageSpeedCheck.js @@ -1,7 +1,5 @@ import mongoose from "mongoose"; -import { BaseCheckSchema } from "./Check.js"; import logger from "../../utils/logger.js"; -import { time } from "console"; const AuditSchema = mongoose.Schema({ id: { type: String, required: true }, title: { type: String, required: true }, @@ -48,7 +46,15 @@ const AuditsSchema = mongoose.Schema({ const PageSpeedCheck = mongoose.Schema( { - ...BaseCheckSchema.obj, + monitorId: { + type: mongoose.Schema.Types.ObjectId, + ref: "Monitor", + immutable: true, + }, + status: { + type: Boolean, + required: true, + }, accessibility: { type: Number, required: true, @@ -70,7 +76,9 @@ const PageSpeedCheck = mongoose.Schema( required: true, }, }, - { timestamps: true } + { + timestamps: true, + } ); /** @@ -104,6 +112,4 @@ PageSpeedCheck.pre("save", async function (next) { } }); -PageSpeedCheck.index({ createdAt: 1 }); - export default mongoose.model("PageSpeedCheck", PageSpeedCheck);