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 097f012..4b34b00 100644 --- a/server/controllers/reviews.js +++ b/server/controllers/reviews.js @@ -15,6 +15,41 @@ const reviewController = { } }, + getAllCompanyReviews: async (req, res, next) => { + try { + //maybe need the company id and review id + //const { companyId } = req.params; + //get all reviews + const reviews = await Reviews.find({}) + console.log(reviews) + //display it in the feed component for the reviews + res.json(reviews); // Send reviews as JSON response + } catch (error) { + next(error) + } + }, + deleteReview: async (req, res) => { + try { + // extract reviewId + const { reviewId } = req.params + + // find & delete review in db + const deletedReview = await Reviews.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', + }) + } + } + // getPost: async (req, res) => { // try { // const post = await Post.findById(req.params.id) @@ -70,19 +105,5 @@ const reviewController = { // res.redirect('/profile') // } // }, - getAllCompanyReviews: async (req, res, next) => { - try { - //maybe need the company id and review id - //const { companyId } = req.params; - //get all reviews - const reviews = await Reviews.find({}) - console.log(reviews) - //display it in the feed component for the reviews - res.json(reviews); // Send reviews as JSON response - } catch (error) { - next(error) - } - } - } export default reviewController diff --git a/server/routes/reviews.js b/server/routes/reviews.js index 81a3583..3f2f34c 100644 --- a/server/routes/reviews.js +++ b/server/routes/reviews.js @@ -10,4 +10,8 @@ reviewRouter.get('/:id', reviewController.getUserReviews); //ensure they are logged in aka clerk reviewRouter.get('/allCompanyReviews', reviewController.getAllCompanyReviews) -export default reviewRouter; +// delete a review by reviewId +reviewRouter.delete('/:reviewId', reviewController.deleteReview) + +// module.exports = router; +export default reviewRouter \ No newline at end of file