import { AnnouncemntModal } from "./announcementModal.js"; export const createAnnouncemnet = async (req, res) => { const { sentTo, message } = req.body; if (!sentTo || !message) { return res.status(400).send("Send to and message are required"); } try { const newAnnouncement = new AnnouncemntModal({ sentTo, message }); await newAnnouncement.save(); res.status(201).json({ message: "Announcement created" }); } catch (err) { console.log(err); res.status(500).json({ error: "Server error" }); } }; export const getAnnouncements = async (req, res) => { const { page = 1, rowsPerPage = 5 } = req.query; try { // Calculate pagination parameters const skip = (page - 1) * rowsPerPage; const limit = parseInt(rowsPerPage, 10); // Get total count of announcements const totalAnnouncements = await AnnouncemntModal.countDocuments(); // Fetch announcements with pagination const announcements = await AnnouncemntModal.find() .skip(skip) .limit(limit) .sort({ createdAt: -1 }); // Sort by timestamp (most recent first) res.status(200).json({ announcements, totalAnnouncements, }); } catch (error) { res.status(500).json({ message: "Error fetching announcements", error }); } }; // Get announcements for a specific role (RDs, PDs, SCs, or TMs) // Controller to get announcements for a specific role export const getAnnouncementsByRole = async (req, res) => { const { page = 1, rowsPerPage = 5 } = req.query; // Extract pagination params try { // Extract role from the URL path const role = req.path.split("/").pop(); // Calculate pagination parameters const skip = (page - 1) * rowsPerPage; const limit = parseInt(rowsPerPage, 10); // Get total count of announcements for the given role const totalAnnouncements = await AnnouncemntModal.countDocuments({ sentTo: role, }); // Fetch announcements with pagination for the given role const announcements = await AnnouncemntModal.find({ sentTo: role }) .skip(skip) .limit(limit) .sort({ createdAt: -1 }); res.status(200).json({ announcements, totalAnnouncements, }); } catch (err) { console.error(err); res.status(500).json({ error: "Server error" }); } };