diff --git a/apps/dispatch-server/modules/chron.ts b/apps/dispatch-server/modules/chron.ts index 1dbbbb8a..3ad776fe 100644 --- a/apps/dispatch-server/modules/chron.ts +++ b/apps/dispatch-server/modules/chron.ts @@ -1,5 +1,5 @@ import { MissionLog, prisma } from "@repo/db"; -import chron from "cron"; +import cron from "node-cron"; const removeClosedMissions = async () => { const oldMissions = await prisma.mission.findMany({ @@ -40,12 +40,10 @@ const removeClosedMissions = async () => { }); }; -const removeClosedMissionsJob = new chron.CronJob( - "*/5 * * * *", // Every 5 minutes - removeClosedMissions, - null, - true, - "Europe/Berlin", -); - -removeClosedMissionsJob.start(); +cron.schedule("*/5 * * * *", async () => { + try { + await removeClosedMissions(); + } catch (error) { + console.error("Error removing closed missions:", error); + } +}); diff --git a/apps/dispatch-server/package.json b/apps/dispatch-server/package.json index 789d3210..1e30c78d 100644 --- a/apps/dispatch-server/package.json +++ b/apps/dispatch-server/package.json @@ -32,6 +32,7 @@ "express": "^5.1.0", "jsonwebtoken": "^9.0.2", "livekit-server-sdk": "^2.13.0", + "node-cron": "^4.1.0", "nodemailer": "^7.0.3", "nodemon": "^3.1.10", "react": "^19.1.0", diff --git a/apps/dispatch-server/socket-events/connect-pilot.ts b/apps/dispatch-server/socket-events/connect-pilot.ts index ba430460..44e98d77 100644 --- a/apps/dispatch-server/socket-events/connect-pilot.ts +++ b/apps/dispatch-server/socket-events/connect-pilot.ts @@ -68,7 +68,6 @@ export const handleConnectPilot = posH145active: true, }, }); - socket.join("dispatchers"); // Join the dispatchers room socket.join(`user:${userId}`); // Join the user-specific room socket.join(`station:${stationId}`); // Join the station-specific room diff --git a/apps/dispatch/app/_components/map/_components/AircraftMarkerTabs.tsx b/apps/dispatch/app/_components/map/_components/AircraftMarkerTabs.tsx index 9e305161..5ea062eb 100644 --- a/apps/dispatch/app/_components/map/_components/AircraftMarkerTabs.tsx +++ b/apps/dispatch/app/_components/map/_components/AircraftMarkerTabs.tsx @@ -9,6 +9,7 @@ import { MissionSdsLog, MissionStationLog, Prisma, + PublicUser, Station, } from "@repo/db"; import { toast } from "react-hot-toast"; @@ -46,20 +47,32 @@ const FMSStatusHistory = ({ aircraft: ConnectedAircraft & { Station: Station }; mission?: Mission; }) => { - console.log("FMSStatusHistory", mission?.missionLog); const log = ((mission?.missionLog as unknown as MissionLog[]) || []) .filter((entry) => entry.type === "station-log" && entry.data.stationId === aircraft.Station.id) .reverse() .splice(0, 6) as MissionStationLog[]; - const aircraftUser = + const aircraftUser: PublicUser = typeof aircraft.publicUser === "string" ? JSON.parse(aircraft.publicUser) : aircraft.publicUser; return (
diff --git a/apps/dispatch/app/pilot/_components/navbar/_components/Connection.tsx b/apps/dispatch/app/pilot/_components/navbar/_components/Connection.tsx index 6a876dd3..896fd326 100644 --- a/apps/dispatch/app/pilot/_components/navbar/_components/Connection.tsx +++ b/apps/dispatch/app/pilot/_components/navbar/_components/Connection.tsx @@ -2,9 +2,11 @@ import { useSession } from "next-auth/react"; import { usePilotConnectionStore } from "_store/pilot/connectionStore"; import { useEffect, useRef, useState } from "react"; -import { useQuery } from "@tanstack/react-query"; +import { useMutation, useQuery } from "@tanstack/react-query"; import { getStationsAPI } from "_querys/stations"; import toast from "react-hot-toast"; +import { editConnectedAircraftAPI } from "_querys/aircrafts"; +import { Prisma } from "@repo/db"; export const ConnectionBtn = () => { const modalRef = useRef(null); @@ -22,6 +24,15 @@ export const ConnectionBtn = () => { queryKey: ["stations"], queryFn: () => getStationsAPI(), }); + const aircraftMutation = useMutation({ + mutationFn: ({ + change, + sessionId, + }: { + sessionId: number; + change: Prisma.ConnectedAircraftUpdateInput; + }) => editConnectedAircraftAPI(sessionId, change), + }); useEffect(() => { if (stations && stations.length > 0 && form.selectedStationId === null) { @@ -100,7 +111,7 @@ export const ConnectionBtn = () => { )}