Files
var-monorepo/apps/dispatch-server/routes/aircraft.ts
2025-05-18 23:21:08 -07:00

78 lines
2.0 KiB
TypeScript

import { prisma } from "@repo/db";
import { Router } from "express";
import { io } from "../index";
const router = Router();
// Get all connectedAircrafts
router.post("/", async (req, res) => {
try {
const filter = req.body?.filter || {};
const connectedAircrafts = await prisma.connectedAircraft.findMany({
where: filter,
});
res.json(connectedAircrafts);
} catch (error) {
console.error(error);
res.status(500).json({ error: "Failed to fetch connectedAircrafts" });
}
});
// Get a single connectedAircraft by ID
router.get("/:id", async (req, res) => {
const { id } = req.params;
try {
const connectedAircraft = await prisma.connectedAircraft.findUnique({
where: { id: Number(id) },
});
if (connectedAircraft) {
res.json(connectedAircraft);
} else {
res.status(404).json({ error: "ConnectedAircraft not found" });
}
} catch (error) {
console.error(error);
res.status(500).json({ error: "Failed to fetch connectedAircraft" });
}
});
// Update a connectedAircraft by ID
router.patch("/:id", async (req, res) => {
const { id } = req.params;
try {
const updatedConnectedAircraft = await prisma.connectedAircraft.update({
where: { id: Number(id) },
data: req.body,
});
io.to("dispatchers").emit(
"update-connectedAircraft",
updatedConnectedAircraft,
);
io.to(`user:${updatedConnectedAircraft.userId}`).emit(
"aircraft-update",
updatedConnectedAircraft,
);
res.json(updatedConnectedAircraft);
} catch (error) {
console.error(error);
res.status(500).json({ error: "Failed to update connectedAircraft" });
}
});
// Delete a connectedAircraft by ID
router.delete("/:id", async (req, res) => {
const { id } = req.params;
try {
await prisma.connectedAircraft.delete({
where: { id: Number(id) },
});
io.to("dispatchers").emit("delete-connectedAircraft", id);
res.status(204).send();
} catch (error) {
console.error(error);
res.status(500).json({ error: "Failed to delete connectedAircraft" });
}
});
export default router;