SiretDataProvider.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  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. public function __construct(
  15. private SiretUtils $siretUtils
  16. )
  17. { }
  18. public function supports(string $resourceClass, string $operationName = null, array $context = []): bool
  19. {
  20. return Siret::class === $resourceClass;
  21. }
  22. public function getItem(string $resourceClass, $id, string $operationName = null, array $context = []): ?Siret
  23. {
  24. $siretResponse = new Siret();
  25. $siretResponse->setNumber($id);
  26. $siretResponse->setIsCorrect($this->siretUtils->isSiretIsCorrect($id));
  27. return $siretResponse;
  28. }
  29. }