Added Aircraft log to mission
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user