From b61571f055b2c6aa036490aa97c23f984612f71c Mon Sep 17 00:00:00 2001 From: Vani Lakshmi K Date: Mon, 23 Mar 2026 23:55:40 +0530 Subject: [PATCH] Backend: fix event registration error handling --- backend/controllers/dashboardController.js | 20 +++++++++++++ backend/controllers/eventControllers.js | 20 +++++++++++++ backend/package-lock.json | 2 ++ backend/routes/events.js | 33 ++++++++++++++-------- 4 files changed, 63 insertions(+), 12 deletions(-) diff --git a/backend/controllers/dashboardController.js b/backend/controllers/dashboardController.js index 193c6b26..354c547e 100644 --- a/backend/controllers/dashboardController.js +++ b/backend/controllers/dashboardController.js @@ -1,4 +1,5 @@ // controllers/dashboardController.js + const { Feedback, Achievement, @@ -184,4 +185,23 @@ exports.getDashboardStats = async (req, res) => { console.error("Error fetching dashboard stats:", error); res.status(500).send("Server Error"); } +}; +exports.getRegisteredEvents = async (req, res) => { + try { + if (!req.user) { + return res.status(401).json({ message: "Unauthorized: Please login first" }); + } + + const userId = req.user._id; + + const events = await Event.find({ + participants: userId + }); + + res.status(200).json(events); + + } catch (error) { + console.error("Error fetching registered events:", error); + res.status(500).json({ message: "Server error" }); + } }; \ No newline at end of file diff --git a/backend/controllers/eventControllers.js b/backend/controllers/eventControllers.js index 60832b0e..3a9a0dc7 100644 --- a/backend/controllers/eventControllers.js +++ b/backend/controllers/eventControllers.js @@ -20,4 +20,24 @@ exports.getLatestEvents = async (req, res) => { console.error('Error fetching latest events:', error); res.status(500).json({ message: 'Server error' }); } +}; +exports.getRegisteredEvents = async (req, res) => { + try { + + if (!req.user) { + return res.status(401).json({ message: "Unauthorized: Please login first" }); + } + + const userId = req.user._id; + + const events = await Event.find({ + participants: userId + }); + + res.status(200).json(events); + + } catch (error) { + console.error("Error fetching registered events:", error); + res.status(500).json({ message: "Server error" }); + } }; \ No newline at end of file diff --git a/backend/package-lock.json b/backend/package-lock.json index 1d66737d..de6a820b 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -1505,6 +1505,7 @@ "version": "8.11.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2510,6 +2511,7 @@ "version": "8.56.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", diff --git a/backend/routes/events.js b/backend/routes/events.js index 4bf5dd92..43043908 100644 --- a/backend/routes/events.js +++ b/backend/routes/events.js @@ -1,3 +1,4 @@ +const dashboardController = require("../controllers/dashboardController"); const express = require("express"); const router = express.Router(); const { Event, User, OrganizationalUnit } = require("../models/schema"); @@ -255,14 +256,12 @@ router.post( event: updatedEvent, }); } catch (error) { - if (error?.name === "CastError") { - return res.status(400).json({ message: "Invalid event ID format." }); - } - console.error("Event registration error:", error); - return res - .status(500) - .json({ message: "Server error during registration." }); - } + if (error?.name === "CastError") { + return res.status(400).json({ message: "Invalid event ID format." }); + } + console.error("Event registration error:", error); + return res.status(500).json({ message: "Internal server error." }); +} }, ); @@ -474,7 +473,6 @@ router.put("/:eventId", isAuthenticated, isEventContact, async (req, res) => { .json({ message: "Server error", error: err.message }); } }); - // Delete an event (only unit contact) router.delete( "/:eventId", @@ -484,13 +482,24 @@ router.delete( try { const { eventId } = req.params; const deleted = await Event.findByIdAndDelete(eventId); - if (!deleted) return res.status(404).json({ message: "Event not found" }); + + if (!deleted) { + return res.status(404).json({ message: "Event not found" }); + } + return res.json({ message: "Event deleted" }); } catch (err) { console.error("delete event error:", err); return res.status(500).json({ message: "Server error" }); } - }, + } +); + +// Get registered events +router.get( + "/registered-events", + isAuthenticated, + dashboardController.getRegisteredEvents ); -module.exports = router; +module.exports = router; \ No newline at end of file