Skip to content

Commit

Permalink
Merge branch 'develop' into improve_accuracy_calculation
Browse files Browse the repository at this point in the history
  • Loading branch information
khavinshankar authored Jun 9, 2024
2 parents 1ebcca2 + cc95994 commit 0d8a128
Show file tree
Hide file tree
Showing 23 changed files with 127 additions and 253 deletions.
144 changes: 0 additions & 144 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
"uuid": "^9.0.1"
},
"scripts": {
"copy-assets": "node tools/copyAssets.js",
"copy-assets": "cp -r src/views src/public dist/.",
"build": "prisma generate && tsc && tsc-alias && npm run copy-assets",
"dev": "nodemon",
"debug": "nodemon --inspect",
Expand Down Expand Up @@ -76,7 +76,6 @@
"nodemon": "^2.0.19",
"prettier": "^3.2.5",
"prisma": "^5.9.1",
"shelljs": "^0.8.5",
"ts-node": "^10.9.1",
"tsc-alias": "^1.8.8",
"tsconfig-paths": "^4.2.0",
Expand Down
2 changes: 1 addition & 1 deletion src/controller/ObservationController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ export class ObservationController {
updateLastObservationData(flattenedObservations);
this.latestObservation.set(flattenedObservations);

filterClients(req.wsInstance.getWss(), "/observations").forEach(
filterClients(req.wsInstance.getWss(), "/observations", undefined).forEach(
(client: WebSocket) => {
const filteredObservations = flattenedObservations?.filter(
(observation: Observation) =>
Expand Down
49 changes: 0 additions & 49 deletions src/controller/ServerStatusController.ts
Original file line number Diff line number Diff line change
@@ -1,55 +1,6 @@
import type { Request, Response } from "express";
import expressWs from "express-ws";
import { loadavg } from "os";
import pidusage from "pidusage";

import type { WebSocket } from "@/types/ws";
import { eventType } from "@/utils/eventTypeConstant";
import { filterClients } from "@/utils/wsUtils";

export class ServerStatusController {
static init(ws: expressWs.Instance) {
const server = ws.getWss();
let intervalId: NodeJS.Timeout | number | undefined = undefined;
let clients: WebSocket[] = [];
server.on("connection", () => {
clients = filterClients(server, "/logger");
if (!intervalId && clients.length !== 0) {
intervalId = setInterval(() => {
pidusage(process.pid, (err, stat) => {
if (err) {
console.log(err);
return null;
}

if (!server.clients?.size) {
clearInterval(intervalId);
intervalId = undefined;
}

const data = {
type: eventType.Resource,
cpu: Number(stat.cpu).toFixed(2),
memory: Number(stat.memory / 1024 / 1024).toFixed(2),
uptime: stat.elapsed,
load: loadavg()[0] || 0,
};

clients.forEach((client) => {
client.send(JSON.stringify(data));
});
});
}, 1000);
}

clients?.forEach((client) => {
client.on("close", () => {
clients = filterClients(server, "/logger");
});
});
});
}

static render(req: Request, res: Response) {
res.render("pages/serverStatus", { req });
}
Expand Down
8 changes: 6 additions & 2 deletions src/cron/automatedDailyRounds.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,11 @@ import prisma from "@/lib/prisma";
import { AssetBed } from "@/types/asset";
import { CameraParams } from "@/types/camera";
import { CarePaginatedResponse } from "@/types/care";
import { DailyRoundObservation, Observation, ObservationType } from "@/types/observation";
import {
DailyRoundObservation,
Observation,
ObservationType,
} from "@/types/observation";
import { OCRV2Response } from "@/types/ocr";
import { CameraUtils } from "@/utils/CameraUtils";
import { isValid } from "@/utils/ObservationUtils";
Expand Down Expand Up @@ -139,7 +143,7 @@ export async function fileAutomatedDailyRound(
.catch((error: AxiosError) => error.response);

if (saveDailyRound) {
prisma.dailyRound.create({
await prisma.dailyRound.create({
data: {
assetExternalId: assetId,
status: response?.statusText ?? "FAILED",
Expand Down
2 changes: 1 addition & 1 deletion src/middleware/auth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ export const jwtAuthNoVerify = (): RequestHandler => {
req.user.id = payload.sub;
}
} catch (error: any) {
console.log(error);
console.warn(`JWT verification failed: ${error.code}`);
}
}
next();
Expand Down
4 changes: 3 additions & 1 deletion src/middleware/errorHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,9 @@ export const errorHandler: ErrorRequestHandler = (err, req, res, next) => {
};

const server = req.wsInstance.getWss();
filterClients(server, "/logger").forEach((c) => c.send(JSON.stringify(data)));
filterClients(server, "/logger", true).forEach((c) =>
c.send(JSON.stringify(data)),
);

if (nodeEnv === "development") {
console.error(err);
Expand Down
7 changes: 4 additions & 3 deletions src/middleware/morganWithWs.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import type { Request } from "express";
import morgan from "morgan";

import type { WebSocket } from "@/types/ws";
import { eventType } from "@/utils/eventTypeConstant";
import { filterClients } from "@/utils/wsUtils";

Expand All @@ -14,9 +15,9 @@ export const morganWithWs = morgan(function (tokens, req: Request, res) {
};

const server = req.wsInstance.getWss("/logger");
filterClients(server, "/logger").forEach((client) =>
client.send(JSON.stringify({ type: eventType.Request, ...data })),
);
filterClients(server, "/logger", true).forEach((client: WebSocket) => {
client.send(JSON.stringify({ type: eventType.Request, ...data }));
});

return Object.values(data).join(" ");
});
3 changes: 0 additions & 3 deletions src/public/assets/styles/style.css

This file was deleted.

15 changes: 15 additions & 0 deletions src/public/static/css/styles.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#server-status-dot[data-status="red"] .animate-ping {
background-color: #f87171 !important; /* Tailwind CSS bg-red-400 */
}

#server-status-dot[data-status="red"] .relative {
background-color: #dc2626 !important; /* Tailwind CSS bg-red-600 */
}

#server-status-dot[data-status="green"] .animate-ping {
background-color: #34d399 !important; /* Tailwind CSS bg-green-400 */
}

#server-status-dot[data-status="green"] .relative {
background-color: #059669 !important; /* Tailwind CSS bg-green-600 */
}
Loading

0 comments on commit 0d8a128

Please sign in to comment.