Feat/db operations psc (#449)

* Add screenshot, fix wording

* Update README.md

* setting up PSC in DB.

* Add docs.

---------

Co-authored-by: Gorkem Cetin (BWL) <167266851+gorkem-bwl@users.noreply.github.com>
This commit is contained in:
SkorpiosandGorkem Cetin authored and GitHub committed 2024-07-25 14:54:50 -07:00
1 parent 168a93e99c
commit 7751a67372
3 files changed
+75 -3

No files matched your search

+9 -3
View File
@@ -6,11 +6,17 @@
![](https://img.shields.io/github/issues-pr/bluewave-labs/bluewave-uptime)
![](https://img.shields.io/github/issues/bluewave-labs/bluewave-uptime)
![]()
# BlueWave Uptime
<h1 align="center"><a href="https://bluewavelabs.ca" target="_blank">BlueWave Uptime</a></h1>
BlueWave Uptime is an open source server monitoring application. It is used to track the operational status and performance of servers and websites. It regularly checks whether a server/website is accessible and performs optimally, providing real-time alerts and reports on the monitored services' availability, downtime, and response time.
<p align="center"><strong>An open source server monitoring application</strong></p>
![bluewave-uptime-screenshot](https://github.com/user-attachments/assets/765bf060-e734-45e6-bd00-2a2eb37c9c02)
BlueWave Uptime is an open source server monitoring application used to track the operational status and performance of servers and websites. It regularly checks whether a server/website is accessible and performs optimally, providing real-time alerts and reports on the monitored services' availability, downtime, and response time.
## Contributing
+64
View File
@@ -4,6 +4,7 @@ const UserModel = require("../models/user");
const Check = require("../models/Check");
const Alert = require("../models/Alert");
const RecoveryToken = require("../models/RecoveryToken");
const PageSpeedCheck = require("../models/PageSpeedCheck");
const InviteToken = require("../models/InviteToken");
const crypto = require("crypto");
const DUPLICATE_KEY_CODE = 11000; // MongoDB error code for duplicate key
@@ -508,6 +509,66 @@ const editMonitor = async (req, res) => {
}
};
//****************************************
// Page Speed Checks
//****************************************
/**
* Create a PageSpeed check for a monitor
* @async
* @param {Object} pageSpeedCheckData
* @param {string} pageSpeedCheckData.monitorId
* @param {number} pageSpeedCheckData.accessibility
* @param {number} pageSpeedCheckData.bestPractices
* @param {number} pageSpeedCheckData.seo
* @param {number} pageSpeedCheckData.performance
* @returns {Promise<PageSpeedCheck>}
* @throws {Error}
*/
const createPageSpeedCheck = async (pageSpeedCheckData) => {
try {
const pageSpeedCheck = await new pageSpeedCheck({ ...pageSpeedCheckData }).save();
return pageSpeedCheck;
} catch (error) {
throw error;
}
};
/**
* Get all PageSpeed checks for a monitor
* @async
* @param {string} monitorId
* @returns {Promise<Array<PageSpeedCheck>>}
* @throws {Error}
*/
const getPageSpeedChecks = async (monitorId) => {
try {
const pageSpeedChecks = await PageSpeedCheck.find({ monitorId });
return pageSpeedChecks;
} catch (error) {
throw error;
}
};
/**
* Delete all PageSpeed checks for a monitor
* @async
* @param {string} monitorId
* @returns {number}
* @throws {Error}
*/
const deletePageSpeedChecks = async (monitorId) => {
try {
const result = await PageSpeedCheck.deleteMany({ monitorId });
return result.deletedCount;
} catch (error) {
throw error;
}
};
//****************************************
// Checks
//****************************************
@@ -734,4 +795,7 @@ module.exports = {
deleteAlert,
deleteAlertByMonitorId,
deleteMonitorsByUserId,
createPageSpeedCheck,
getPageSpeedChecks,
deletePageSpeedChecks,
};
+2
View File
@@ -45,3 +45,5 @@ const PageSpeedCheck = mongoose.Schema(
*/
module.exports = mongoose.model("PageSpeedCheck", PageSpeedCheck);