Added Aircraft log to mission

This commit is contained in:
PxlLoewe
2025-05-20 14:15:24 -07:00
parent 1696c79122
commit df4cff827e
13 changed files with 354 additions and 84 deletions

View File

@@ -1,4 +1,10 @@
import { prisma } from "@repo/db";
import {
ConnectedAircraft,
getPublicUser,
MissionLog,
Prisma,
prisma,
} from "@repo/db";
import { Router } from "express";
import { io } from "../index";
@@ -39,11 +45,58 @@ router.get("/:id", async (req, res) => {
// Update a connectedAircraft by ID
router.patch("/:id", async (req, res) => {
const { id } = req.params;
const aircraftUpdate = req.body as Prisma.ConnectedAircraftUpdateInput;
try {
const oldConnectedAircraft = await prisma.connectedAircraft.findUnique({
where: { id: Number(id) },
include: {
Station: true,
User: true,
},
});
const updatedConnectedAircraft = await prisma.connectedAircraft.update({
where: { id: Number(id) },
data: req.body,
data: {
...aircraftUpdate,
},
});
const mission = await prisma.mission.findFirst({
where: {
state: "running",
missionStationIds: {
has: updatedConnectedAircraft.stationId,
},
},
});
if (
mission &&
aircraftUpdate.fmsStatus &&
oldConnectedAircraft &&
updatedConnectedAircraft &&
oldConnectedAircraft.fmsStatus !== updatedConnectedAircraft.fmsStatus
) {
const newMissionLog = mission.missionLog as any as MissionLog[];
newMissionLog.push({
type: "station-log",
auto: true,
data: {
oldFMSstatus: oldConnectedAircraft.fmsStatus,
newFMSstatus: updatedConnectedAircraft.fmsStatus,
station: oldConnectedAircraft.Station,
stationId: updatedConnectedAircraft.stationId,
user: getPublicUser(oldConnectedAircraft.User),
},
timeStamp: new Date().toISOString(),
});
await prisma.mission.update({
where: { id: mission.id },
data: {
missionLog: newMissionLog as any,
},
});
}
io.to("dispatchers").emit(
"update-connectedAircraft",
updatedConnectedAircraft,

View File

@@ -1,15 +1,13 @@
import { User } from "@repo/db";
import { Socket, Server } from "socket.io";
export const handleConnectDesktop =
(socket: Socket, io: Server) => (socket: Socket) => {
const user = socket.data.user as User;
console.log("connect-desktop", user.publicId);
socket.join(`user:${user.id}`);
socket.join(`desktop:${user.id}`);
export const handleConnectDesktop = (socket: Socket, io: Server) => () => {
const user = socket.data.user as User;
console.log("connect-desktop", user.publicId);
socket.join(`user:${user.id}`);
socket.join(`desktop:${user.id}`);
socket.on("ptt", (data) => {
console.log("ptt", data);
socket.to(`user:${user.id}`).emit("ptt", data);
});
};
socket.on("ptt", (data) => {
socket.to(`user:${user.id}`).emit("ptt", data);
});
};