Files
var-monorepo/apps/dispatch-server/socket-events/connect-desktop.ts
2025-05-21 14:52:38 -07:00

37 lines
889 B
TypeScript

import { prisma, User } from "@repo/db";
import { Socket, Server } from "socket.io";
export const handleConnectDesktop = (socket: Socket, io: Server) => () => {
const user = socket.data.user as User;
socket.join(`user:${user.id}`);
socket.join(`desktop:${user.id}`);
socket.on("ptt", async (data) => {
socket.to(`user:${user.id}`).emit("ptt", data);
const connectedAircraft = await prisma.connectedAircraft.findFirst({
where: {
userId: user.id,
logoutTime: null,
},
include: {
Station: true,
},
});
const connectedDispatcher = await prisma.connectedDispatcher.findFirst({
where: {
userId: user.id,
logoutTime: null,
},
});
socket.to("pilots").emit("other-ptt", {
publicUser: user.publicId,
source:
connectedAircraft?.Station.bosCallsignShort || connectedDispatcher
? "Leitstelle"
: user.publicId,
});
});
};