SiretDataProvider.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\DataProvider\Utils;
  4. use ApiPlatform\Core\DataProvider\ItemDataProviderInterface;
  5. use ApiPlatform\Core\DataProvider\RestrictedDataProviderInterface;
  6. use App\ApiResources\Utils\Siret;
  7. use App\Service\Utils\Siret as SiretUtils;
  8. /**
  9. * Class SiretDataProvider : custom provider pour assurer l'alimentation des utils Siret
  10. * @package App\DataProvider\Utils
  11. */
  12. final class SiretDataProvider implements ItemDataProviderInterface, RestrictedDataProviderInterface
  13. {
  14. private SiretUtils $siretUtils;
  15. public function __construct(
  16. SiretUtils $siretUtils
  17. )
  18. {
  19. $this->siretUtils = $siretUtils;
  20. }
  21. public function supports(string $resourceClass, string $operationName = null, array $context = []): bool
  22. {
  23. return Siret::class === $resourceClass;
  24. }
  25. public function getItem(string $resourceClass, $number, string $operationName = null, array $context = []): ?Siret
  26. {
  27. $siretResponse = new Siret();
  28. $siretResponse->setNumber($number);
  29. $siretResponse->setIsCorrect($this->siretUtils->isSiretIsCorrect($number));
  30. return $siretResponse;
  31. }
  32. }