src/V4/DataProvider/Section/SectionCollectionDataProvider.php line 48

Open in your IDE?
  1. <?php
  2. namespace App\V4\DataProvider\Section;
  3. use App\DataProvider\AbstractCollectionDataProvider;
  4. use App\Listing\Transformer\ListingResponseTransformerInterface;
  5. use App\Service\ApiWebService;
  6. use App\Service\ApiWebServiceFilterBuilder\FilterBuildersChain;
  7. use App\Service\Cache\CacheManager;
  8. use App\Service\Provider\ApiUserProvider;
  9. use App\V4\Model\Section\Section;
  10. use App\V4\Repository\SavedRequestRepository;
  11. use Doctrine\Common\Collections\ArrayCollection;
  12. final class SectionCollectionDataProvider extends AbstractCollectionDataProvider
  13. {
  14.     protected const ENTITY Section::class;
  15.     protected const ENDPOINT '/api/sections';
  16.     /**
  17.      * @var SavedRequestRepository
  18.      */
  19.     private $savedRequestRepository;
  20.     /**
  21.      * @param FilterBuildersChain                 $filterBuildersChain
  22.      * @param ApiWebService                       $apiWebService
  23.      * @param ApiUserProvider                     $apiUserProvider
  24.      * @param CacheManager                        $cacheManager
  25.      * @param ListingResponseTransformerInterface $listingResponseTransformer
  26.      * @param SavedRequestRepository              $savedRequestRepository
  27.      */
  28.     public function __construct(
  29.         FilterBuildersChain $filterBuildersChain,
  30.         ApiWebService $apiWebService,
  31.         ApiUserProvider $apiUserProvider,
  32.         CacheManager $cacheManager,
  33.         ListingResponseTransformerInterface $listingResponseTransformer,
  34.         SavedRequestRepository $savedRequestRepository
  35.     ) {
  36.         parent::__construct($filterBuildersChain$apiWebService$apiUserProvider$cacheManager$listingResponseTransformer);
  37.         $this->savedRequestRepository $savedRequestRepository;
  38.     }
  39.     /**
  40.      * {@inheritdoc}
  41.      */
  42.     public function getCollection(string $resourceClassstring $operationName null, array $context = []): iterable
  43.     {
  44.         $sections parent::getCollection($resourceClass$operationName$context);
  45.         foreach ($sections as $section) {
  46.             $savedRequests $this->savedRequestRepository->getSavedRequestsBySection($section);
  47.             $section->setSectionSavedRequests(new ArrayCollection($savedRequests));
  48.         }
  49.         return $sections;
  50.     }
  51. }