From 3d77ab3b9027e279f9e89ca40f79e8c3b9ddbfba Mon Sep 17 00:00:00 2001 From: PxlLoewe <72106766+PxlLoewe@users.noreply.github.com> Date: Thu, 16 Oct 2025 14:30:01 +0200 Subject: [PATCH] mission closed socket event --- apps/dispatch-server/routes/mission.ts | 14 ++++++++++++++ packages/database/prisma/json/SocketEvents.ts | 13 ++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/apps/dispatch-server/routes/mission.ts b/apps/dispatch-server/routes/mission.ts index 3c6f906c..ff9705f1 100644 --- a/apps/dispatch-server/routes/mission.ts +++ b/apps/dispatch-server/routes/mission.ts @@ -87,6 +87,20 @@ router.patch("/:id", async (req, res) => { data: req.body, }); io.to("dispatchers").emit("update-mission", { updatedMission }); + if (req.body.state === "finished") { + updatedMission.missionStationUserIds?.forEach((userId) => { + io.to(`user:${userId}`).emit("notification", { + type: "mission-closed", + status: "closed", + message: `Einsatz ${updatedMission.publicId} wurde beendet`, + data: { + missionId: updatedMission.id, + publicMissionId: updatedMission.publicId, + }, + } as NotificationPayload); + }); + } + res.json(updatedMission); } catch (error) { console.error(error); diff --git a/packages/database/prisma/json/SocketEvents.ts b/packages/database/prisma/json/SocketEvents.ts index 8aa1672e..1fe7dfe7 100644 --- a/packages/database/prisma/json/SocketEvents.ts +++ b/packages/database/prisma/json/SocketEvents.ts @@ -50,9 +50,20 @@ export type MissionAutoClose = { }; }; +export type MissionClosed = { + type: "mission-closed"; + status: "closed"; + message: string; + data: { + missionId: number; + publicMissionId: string; + }; +}; + export type NotificationPayload = | ValidationFailed | ValidationSuccess | AdminMessage | StationStatus - | MissionAutoClose; + | MissionAutoClose + | MissionClosed;