diff --git a/package-lock.json b/package-lock.json index 39553cc..b291027 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "@clerk/clerk-react": "^5.21.0", "@clerk/clerk-sdk-node": "^5.1.4", "@clerk/react-router": "^0.1.5", + "dotenv": "^16.4.7", "react": "^18.3.1", "react-dom": "^18.3.1", "react-router": "^7.1.1", @@ -2096,6 +2097,18 @@ "tslib": "^2.0.3" } }, + "node_modules/dotenv": { + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", diff --git a/package.json b/package.json index 66abbae..f9550e8 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "@clerk/clerk-react": "^5.21.0", "@clerk/clerk-sdk-node": "^5.1.4", "@clerk/react-router": "^0.1.5", + "dotenv": "^16.4.7", "react": "^18.3.1", "react-dom": "^18.3.1", "react-router": "^7.1.1", diff --git a/server/controllers/reviews.js b/server/controllers/reviews.js index 0212bbd..86ae000 100644 --- a/server/controllers/reviews.js +++ b/server/controllers/reviews.js @@ -1,6 +1,7 @@ const cloudinary = require('../middleware/cloudinary') const Review = require('../models/Reviews') + const reviewController = { getProfile: async (req, res) => { try { @@ -73,6 +74,27 @@ const reviewController = { res.redirect('/profile') } }, + + deleteReview: async (req, res) => { + try { + // extract reviewId + const { reviewId } = req.params; + + // find & delete review in db + const deletedReview = await Review.findByIdAndDelete(reviewId); + + if (!deletedReview) { + return res.status(404).json({ message: 'Review not found' }); + } + + console.log(`Review ${reviewId} has been deleted`); + res.status(200).json({ message: 'Review deleted successfully' }); + } catch (err) { + console.error('Error deleting review:', err); + res.status(500).json({ message: 'Server error while deleting review' }); + } + }, + } export default reviewController diff --git a/server/routes/reviews.js b/server/routes/reviews.js index 0ef5a4a..08d8af1 100644 --- a/server/routes/reviews.js +++ b/server/routes/reviews.js @@ -1,5 +1,6 @@ import express from 'express' const reviewRouter = express.Router() +import reviewController from '../controllers/reviews.js'; // const upload = require("../middleware/multer"); // const postsController = require("../controllers/posts"); // const { ensureAuth, ensureGuest } = require("../middleware/auth"); @@ -13,5 +14,9 @@ const reviewRouter = express.Router() // router.delete("/deletePost/:id", postsController.deletePost); + +// delete a review by reviewId +reviewRouter.delete('/:reviewId', reviewController.deleteReview); + // module.exports = router; export default reviewRouter