diff --git a/server/controllers/feedbackController.js b/server/controllers/feedbackController.js index 89f12f1..50bf67d 100644 --- a/server/controllers/feedbackController.js +++ b/server/controllers/feedbackController.js @@ -1,18 +1,26 @@ const asyncHandler = require('express-async-handler'); -const Feedback = require("../models/studentfeeback"); - +const Feedback = require('../models/studentfeedback'); +const { validationResult } = require('express-validator'); // For input validation +// Middleware for input validation (example using express-validator) +const validateFeedback = [ + check('message').notEmpty().withMessage('Message is required'), + check('canteenId').notEmpty().withMessage('Canteen ID is required'), + check('userId').notEmpty().withMessage('User ID is required') +]; const submitFeedback = asyncHandler(async (req, res) => { - const { message, canteenId ,userId} = req.body; - - - if (!message || !canteenId) { - res.status(400); - throw new Error('Message and Canteen ID are required'); + // Validate request inputs + const errors = validationResult(req); + if (!errors.isEmpty()) { + return res.status(400).json({ errors: errors.array() }); + } + const { message, canteenId, userId } = req.body; + try { + const feedback = new Feedback({ message, canteenId, userId }); + await feedback.save(); + res.status(201).json({ message: 'Feedback submitted successfully' }); + } catch (error) { + console.error('Error submitting feedback:', error); // Log the error for debugging + res.status(500).json({ error: 'Server error, could not submit feedback' }); } - - const feedback = new Feedback({ message, canteenId, userId }); - await feedback.save(); - res.status(201).json({ message: 'Feedback submitted successfully' }); }); - -module.exports = { submitFeedback }; \ No newline at end of file +module.exports = { submitFeedback, validateFeedback };