diff --git a/src/controllers/productsController.ts b/src/controllers/productsController.ts index f33ebc03..a4865e52 100644 --- a/src/controllers/productsController.ts +++ b/src/controllers/productsController.ts @@ -246,7 +246,10 @@ export const getAllProduct = async (req: Request, res: Response) => { try { // Fetch all products with their associated sizes const products: any = await Product.findAll({ - include: [{ model: Size, as: 'sizes' }], + include: [ + { model: Size, as: 'sizes' }, + { model: Review, as: 'reviews', include: [{ model: User, as: 'user', attributes: ['photoUrl', 'firstName'] }] }, + ], }); const currentDate = new Date(); @@ -277,7 +280,10 @@ export const getProductById = async (req: Request, res: Response) => { try { const { productId } = req.params; const product = await Product.findByPk(productId, { - include: [{ model: Size, as: 'sizes' }], + include: [ + { model: Size, as: 'sizes' }, + { model: Review, as: 'reviews', include: [{ model: User, as: 'user', attributes: ['photoUrl', 'firstName'] }] }, + ], }); if (!product) { diff --git a/src/routes/productRoutes.ts b/src/routes/productRoutes.ts index a60b4843..f2de27ec 100644 --- a/src/routes/productRoutes.ts +++ b/src/routes/productRoutes.ts @@ -45,7 +45,7 @@ router.put('/:sizeId/available', isAuthenticated, checkUserRoles('seller'), mark router.put('/:sizeId/unavailable', isAuthenticated, checkUserRoles('seller'), markProductAsUnavailable); router.post('/:productId/review/', isAuthenticated, multerUpload.single('feedbackImage'), provideReviewToProduct); router.delete('/:productId/review/:reviewId', isAuthenticated, deleteReview); -router.get('/:productId/review/statistics', isAuthenticated, calculateAverageRating); +router.get('/:productId/review/statistics', calculateAverageRating); router.get('/:productId/reviews', getProductReviewsById); export default router;