CotisationDataProvider.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\DataProvider\Cotisation;
  4. use ApiPlatform\Core\DataProvider\ItemDataProviderInterface;
  5. use ApiPlatform\Core\DataProvider\RestrictedDataProviderInterface;
  6. use App\ApiResources\Cotisation\Cotisation;
  7. use App\Service\Cotisation\CotisationCreator;
  8. /**
  9. * Class CotisationDataProvider : custom provider pour assurer l'alimentation de la réponse du GET cotisation
  10. * @package App\DataProvider\Cotisation
  11. */
  12. final class CotisationDataProvider implements ItemDataProviderInterface, RestrictedDataProviderInterface
  13. {
  14. public function __construct(private CotisationCreator $cotisationCreator)
  15. { }
  16. public function supports(string $resourceClass, string $operationName = null, array $context = []): bool
  17. {
  18. return Cotisation::class === $resourceClass;
  19. }
  20. public function getItem(string $resourceClass, $id, string $operationName = null, array $context = []): ?Cotisation
  21. {
  22. try {
  23. return $this->cotisationCreator->getCotisation($id);
  24. } catch (\Exception $e) {
  25. return null;
  26. }
  27. }
  28. }