78 lines
2.0 KiB
TypeScript
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;
|