const express = require("express"); const Announcement = require("../models/Announcement"); const router = express.Router(); router.get("/", async (req, res) => { try { const filter = {}; if (req.query.active === "true") { filter.active = true; } const announcements = await Announcement.find(filter).sort({ priority: -1, createdAt: -1, }); res.json(announcements); } catch (error) { res.status(500).json({ message: "Failed to fetch announcements" }); } }); router.post("/", async (req, res) => { try { const announcement = await Announcement.create(req.body); res.status(201).json(announcement); } catch (error) { res.status(400).json({ message: "Failed to create announcement" }); } }); router.get("/:id", async (req, res) => { try { const announcement = await Announcement.findById(req.params.id); if (!announcement) { return res.status(404).json({ message: "Announcement not found" }); } res.json(announcement); } catch (error) { res.status(400).json({ message: "Failed to fetch announcement" }); } }); router.put("/:id", async (req, res) => { try { const announcement = await Announcement.findByIdAndUpdate(req.params.id, req.body, { new: true, }); if (!announcement) { return res.status(404).json({ message: "Announcement not found" }); } res.json(announcement); } catch (error) { res.status(400).json({ message: "Failed to update announcement" }); } }); router.delete("/:id", async (req, res) => { try { const announcement = await Announcement.findByIdAndDelete(req.params.id); if (!announcement) { return res.status(404).json({ message: "Announcement not found" }); } res.json({ ok: true }); } catch (error) { res.status(400).json({ message: "Failed to delete announcement" }); } }); module.exports = router;