From 0f5a3f7c8fa7e41db8d37eb97fed3d3cbcdecaf9 Mon Sep 17 00:00:00 2001 From: ~Chiluka Akshitha <120377576+AKSHITHA-CHILUKA@users.noreply.github.com> Date: Sat, 27 Jul 2024 08:05:50 +0530 Subject: [PATCH 1/2] Update feedbackController.js validation for message, canteenId, and userId fields and error Handling --- server/controllers/feedbackController.js | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/server/controllers/feedbackController.js b/server/controllers/feedbackController.js index 89f12f1..a71e7b8 100644 --- a/server/controllers/feedbackController.js +++ b/server/controllers/feedbackController.js @@ -1,18 +1,22 @@ const asyncHandler = require('express-async-handler'); -const Feedback = require("../models/studentfeeback"); +const Feedback = require('../models/studentfeedback'); const submitFeedback = asyncHandler(async (req, res) => { - const { message, canteenId ,userId} = req.body; + const { message, canteenId, userId } = req.body; - - if (!message || !canteenId) { + if (!message || !canteenId || !userId) { res.status(400); - throw new Error('Message and Canteen ID are required'); + throw new Error('Message, Canteen ID, and User ID are required'); } - const feedback = new Feedback({ message, canteenId, userId }); - await feedback.save(); - res.status(201).json({ message: 'Feedback submitted successfully' }); + try { + const feedback = new Feedback({ message, canteenId, userId }); + await feedback.save(); + res.status(201).json({ message: 'Feedback submitted successfully' }); + } catch (error) { + res.status(500); + throw new Error('Server error, could not submit feedback'); + } }); -module.exports = { submitFeedback }; \ No newline at end of file +module.exports = { submitFeedback }; From 32b87f8a30511266a94a1f418f9e2549129170a1 Mon Sep 17 00:00:00 2001 From: ~Chiluka Akshitha <120377576+AKSHITHA-CHILUKA@users.noreply.github.com> Date: Sun, 28 Jul 2024 17:17:17 +0530 Subject: [PATCH 2/2] Update feedbackController.js --- server/controllers/feedbackController.js | 26 ++++++++++++++---------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/server/controllers/feedbackController.js b/server/controllers/feedbackController.js index a71e7b8..50bf67d 100644 --- a/server/controllers/feedbackController.js +++ b/server/controllers/feedbackController.js @@ -1,22 +1,26 @@ const asyncHandler = require('express-async-handler'); 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 || !userId) { - res.status(400); - throw new Error('Message, Canteen ID, and User 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) { - res.status(500); - throw new Error('Server error, could not submit feedback'); + console.error('Error submitting feedback:', error); // Log the error for debugging + res.status(500).json({ error: 'Server error, could not submit feedback' }); } }); - -module.exports = { submitFeedback }; +module.exports = { submitFeedback, validateFeedback };