src/DataProvider/ActivitySubdomainAllDataProvider.php line 43

Open in your IDE?
  1. <?php
  2. namespace App\DataProvider;
  3. use ApiPlatform\Core\DataProvider\ContextAwareCollectionDataProviderInterface;
  4. use ApiPlatform\Core\DataProvider\RestrictedDataProviderInterface;
  5. use App\Repository\ActivitySubdomainRepository;
  6. use Evo\Infrastructure\MappingORM\ActivitySubdomain;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\RequestStack;
  9. final class ActivitySubdomainAllDataProvider implements ContextAwareCollectionDataProviderInterfaceRestrictedDataProviderInterface
  10. {
  11.     private const OPERATION 'activity_subdomain_all';
  12.     private ActivitySubdomainRepository $ActivitySubdomainRepository;
  13.     private RequestStack $requestStack;
  14.     public function __construct(
  15.         ActivitySubdomainRepository $ActivitySubdomainRepository,
  16.         RequestStack $requestStack
  17.     ) {
  18.         $this->ActivitySubdomainRepository $ActivitySubdomainRepository;
  19.         $this->requestStack $requestStack;
  20.     }
  21.     public function supports(string $resourceClassstring $operationName null, array $context = []): bool
  22.     {
  23.         return ActivitySubdomain::class === $resourceClass && self::OPERATION === $operationName;
  24.     }
  25.     /**
  26.      * @return array|float|int|iterable|mixed|string
  27.      */
  28.     public function getCollection(string $resourceClassstring $operationName null, array $context = [])
  29.     {
  30.         $request $this->requestStack->getCurrentRequest();
  31.         if (!$request instanceof Request) {
  32.             return [];
  33.         }
  34.         $order $request->query->get('order');
  35.         $label = (string) $request->query->get('label');
  36.         $activityDomainId $request->query->get('activityDomain_id');
  37.         $queryBuilder $this->ActivitySubdomainRepository->getByLabel($label$order$activityDomainId);
  38.         return $queryBuilder->getQuery()->getResult();
  39.     }
  40. }