From 8ebb123064122c2527410e4269d6ceca8dc7992c Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Thu, 28 Oct 2021 07:19:32 +0000 Subject: [PATCH] Add average rating for partners in response for closest partners. #632 --- src/Controller/APIController.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/Controller/APIController.php b/src/Controller/APIController.php index a1a04590..4e44d602 100644 --- a/src/Controller/APIController.php +++ b/src/Controller/APIController.php @@ -2524,6 +2524,23 @@ class APIController extends Controller implements LoggedController $partners = []; foreach($result as $row) { + // get all the reviews for each partner and average the ratings + $partner_id = $row[0]->getID(); + $partner = $em->getRepository(Partner::class)->find($partner_id); + $partner_reviews = $em->getRepository(Review::class)->findBy(['partner' => $partner]); + + $average_rating = 0; + if (count($partner_reviews) > 0) + { + $rating = 0; + foreach ($partner_reviews as $review) + { + $rating = $rating + $review->getRating(); + } + + $average_rating = $rating / sizeof($partner_reviews); + } + $partners[] = [ 'id' => $row[0]->getID(), 'name' => $row[0]->getName(), @@ -2535,6 +2552,7 @@ class APIController extends Controller implements LoggedController 'longitude' => $row[0]->getCoordinates()->getLongitude(), 'latitude' => $row[0]->getCoordinates()->getLatitude(), 'db_distance' => $row['dist'], + 'rating' => $average_rating, ]; }