From fe83b82f2e19c2107fc810eceb0d3e83b8e61cfa Mon Sep 17 00:00:00 2001
From: Tobias Gross-Vogt <tgros@tugraz.at>
Date: Thu, 31 Mar 2022 12:25:53 +0200
Subject: [PATCH] #28178 filter paramters instead of subressource, fixed array
 intersection

---
 src/DataProvider/CourseCollectionDataProvider.php | 8 +++++---
 src/Entity/Course.php                             | 2 --
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/DataProvider/CourseCollectionDataProvider.php b/src/DataProvider/CourseCollectionDataProvider.php
index 5b9de49..421d1fd 100644
--- a/src/DataProvider/CourseCollectionDataProvider.php
+++ b/src/DataProvider/CourseCollectionDataProvider.php
@@ -48,7 +48,9 @@ final class CourseCollectionDataProvider extends AbstractController implements C
             if (!empty($personId)) {
                 $coursesByPerson = $this->courseProvider->getCoursesByPerson($personId, $options);
                 if (!empty($organizationId)) {
-                    $courses = array_uintersect($courses, $coursesByPerson, compareCourses);
+                    $courses = array_uintersect($courses, $coursesByPerson,
+                        'Dbp\Relay\BaseCourseBundle\DataProvider\CourseCollectionDataProvider::compareCourses');
+                    $courses = array_values($courses);
                 } else {
                     $courses = $coursesByPerson;
                 }
@@ -70,11 +72,11 @@ final class CourseCollectionDataProvider extends AbstractController implements C
         return new ArrayFullPaginator($courses, $page, $perPage);
     }
 
-    private static function compareCourses(Course $a, Course $b): int
+    public static function compareCourses(Course $a, Course $b): int
     {
         if ($a->getIdentifier() > $b->getIdentifier()) {
             return 1;
-        } else if ($a->getIdentifier() === $b->getIdentifier()) {
+        } elseif ($a->getIdentifier() === $b->getIdentifier()) {
             return 0;
         } else {
             return -1;
diff --git a/src/Entity/Course.php b/src/Entity/Course.php
index c40fac7..7b419e8 100644
--- a/src/Entity/Course.php
+++ b/src/Entity/Course.php
@@ -5,8 +5,6 @@ declare(strict_types=1);
 namespace Dbp\Relay\BaseCourseBundle\Entity;
 
 use ApiPlatform\Core\Annotation\ApiResource;
-use Dbp\Relay\BaseCourseBundle\Controller\GetCoursesByOrganization;
-use Dbp\Relay\BaseCourseBundle\Controller\GetCoursesByPerson;
 use Symfony\Component\Serializer\Annotation\Groups;
 
 /**
-- 
GitLab