src/DataProvider/ActivityDomainAllDataProvider.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\ActivityDomainRepository;
  6. use Evo\Infrastructure\MappingORM\ActivityDomain;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\RequestStack;
  9. final class ActivityDomainAllDataProvider implements ContextAwareCollectionDataProviderInterfaceRestrictedDataProviderInterface
  10. {
  11.     private const OPERATION 'activity_domain_all';
  12.     private ActivityDomainRepository $ActivityDomainRepository;
  13.     private RequestStack $requestStack;
  14.     public function __construct(
  15.         ActivityDomainRepository $ActivityDomainRepository,
  16.         RequestStack $requestStack
  17.     ) {
  18.         $this->ActivityDomainRepository $ActivityDomainRepository;
  19.         $this->requestStack $requestStack;
  20.     }
  21.     public function supports(string $resourceClassstring $operationName null, array $context = []): bool
  22.     {
  23.         return ActivityDomain::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.         $queryBuilder $this->ActivityDomainRepository->getByLabel($label$order);
  37.         return $queryBuilder->getQuery()->getResult();
  38.     }
  39. }