mirror of
https://github.com/bluewave-labs/Checkmate.git
synced 2026-01-23 18:19:51 -06:00
Merge pull request #742 from bluewave-labs/feat/be/status-codes-and-messages
Add status codes and messages to checks
This commit is contained in:
@@ -1,6 +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");
|
||||
|
||||
class NetworkService {
|
||||
constructor(db, emailService) {
|
||||
@@ -84,11 +86,13 @@ class NetworkService {
|
||||
const { responseTime, response } =
|
||||
await this.measureResponseTime(operation);
|
||||
isAlive = response.alive;
|
||||
|
||||
const checkData = {
|
||||
monitorId: job.data._id,
|
||||
status: isAlive,
|
||||
responseTime,
|
||||
message: isAlive
|
||||
? successMessages.PING_SUCCESS
|
||||
: errorMessages.PING_CANNOT_RESOLVE,
|
||||
};
|
||||
return await this.logAndStoreCheck(checkData, this.db.createCheck);
|
||||
} catch (error) {
|
||||
@@ -96,6 +100,7 @@ class NetworkService {
|
||||
const checkData = {
|
||||
monitorId: job.data._id,
|
||||
status: isAlive,
|
||||
message: errorMessages.PING_CANNOT_RESOLVE,
|
||||
responseTime: error.responseTime,
|
||||
};
|
||||
return await this.logAndStoreCheck(checkData, this.db.createCheck);
|
||||
@@ -122,7 +127,6 @@ class NetworkService {
|
||||
try {
|
||||
const { responseTime, response } =
|
||||
await this.measureResponseTime(operation);
|
||||
|
||||
// check if response is in the 200 range, if so, service is up
|
||||
isAlive = response.status >= 200 && response.status < 300;
|
||||
|
||||
@@ -132,21 +136,21 @@ class NetworkService {
|
||||
status: isAlive,
|
||||
responseTime,
|
||||
statusCode: response.status,
|
||||
message: http.STATUS_CODES[response.status],
|
||||
};
|
||||
return await this.logAndStoreCheck(checkData, this.db.createCheck);
|
||||
} catch (error) {
|
||||
const statusCode = error.response?.status || this.NETWORK_ERROR;
|
||||
let message = http.STATUS_CODES[statusCode] || "Network Error";
|
||||
isAlive = false;
|
||||
const checkData = {
|
||||
monitorId: job.data._id,
|
||||
status: isAlive,
|
||||
statusCode,
|
||||
responseTime: error.responseTime,
|
||||
message,
|
||||
};
|
||||
// The server returned a response
|
||||
if (error.response) {
|
||||
checkData.statusCode = error.response.status;
|
||||
} else {
|
||||
checkData.statusCode = this.NETWORK_ERROR;
|
||||
}
|
||||
|
||||
return await this.logAndStoreCheck(checkData, this.db.createCheck);
|
||||
} finally {
|
||||
this.handleNotification(job, isAlive);
|
||||
@@ -197,6 +201,8 @@ class NetworkService {
|
||||
const checkData = {
|
||||
monitorId: job.data._id,
|
||||
status: isAlive,
|
||||
statusCode: response.status,
|
||||
message: http.STATUS_CODES[response.status],
|
||||
accessibility: (categories.accessibility?.score || 0) * 100,
|
||||
bestPractices: (categories["best-practices"]?.score || 0) * 100,
|
||||
seo: (categories.seo?.score || 0) * 100,
|
||||
@@ -213,9 +219,13 @@ class NetworkService {
|
||||
this.logAndStoreCheck(checkData, this.db.createPageSpeedCheck);
|
||||
} catch (error) {
|
||||
isAlive = false;
|
||||
const statusCode = error.response?.status || this.NETWORK_ERROR;
|
||||
const message = http.STATUS_CODES[statusCode] || "Network Error";
|
||||
const checkData = {
|
||||
monitorId: job.data._id,
|
||||
status: isAlive,
|
||||
statusCode,
|
||||
message,
|
||||
accessibility: 0,
|
||||
bestPractices: 0,
|
||||
seo: 0,
|
||||
|
||||
@@ -44,6 +44,9 @@ const errorMessages = {
|
||||
JOB_QUEUE_WORKER_CLOSE: "Error closing worker",
|
||||
JOB_QUEUE_DELETE_JOB: "Job not found in queue",
|
||||
JOB_QUEUE_OBLITERATE: "Error obliterating queue",
|
||||
|
||||
// PING Operations
|
||||
PING_CANNOT_RESOLVE: "No response",
|
||||
};
|
||||
|
||||
const successMessages = {
|
||||
@@ -88,6 +91,9 @@ const successMessages = {
|
||||
//Maintenance Window Controller
|
||||
MAINTENANCE_WINDOW_CREATE: "Maintenance Window created successfully",
|
||||
MAINTEANCE_WINDOW_GET_BY_USER: "Got Maintenance Windows by User successfully",
|
||||
|
||||
//Ping Operations
|
||||
PING_SUCCESS: "Success",
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
|
||||
Reference in New Issue
Block a user