review.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. const router = require('express').Router()
  2. const Review = require('../models/review')
  3. const Product = require('../models/product')
  4. const virifyToken = require('../middlewares/verify-token')
  5. const upload = require('../middlewares/upload-photo')
  6. router.post('/reviews/:productID', [virifyToken, upload.single('photo')], async (req, res) => {
  7. try {
  8. const review = new Review()
  9. review.headline = req.body.headline
  10. review.body = req.body.body
  11. review.rating = req.body.rating
  12. review.photo = req.file.location
  13. review.productID = req.params.productID
  14. review.user = req.decoded._id
  15. await Product.update({ $push: { rating: review._id } })
  16. const saveReviews = await review.save()
  17. if (saveReviews) {
  18. res.json({
  19. success: true,
  20. message: 'Successfully Added Review'
  21. })
  22. }
  23. } catch (err) {
  24. res.status(500).json({
  25. success: false,
  26. message: err.message
  27. })
  28. }
  29. })
  30. router.get('/reviews/:productID', async(req, res) => {
  31. try {
  32. const productReviews = await Review.find({
  33. productID: req.params.productID
  34. })
  35. .populate('user')
  36. .exec()
  37. res.json({
  38. success: true,
  39. reviews: productReviews
  40. })
  41. } catch (err) {
  42. res.status(500).json({
  43. success: false,
  44. message: err.message
  45. })
  46. }
  47. })
  48. module.exports = router