Add average rating for partners in response for closest partners. #632

This commit is contained in:
Korina Cordero 2021-10-28 07:19:32 +00:00
parent 158d05d822
commit 8ebb123064

View file

@ -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,
];
}