CotisationProvider.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\State\Provider\Cotisation;
  4. use ApiPlatform\Metadata\GetCollection;
  5. use ApiPlatform\Metadata\Operation;
  6. use ApiPlatform\State\ProviderInterface;
  7. use App\ApiResources\Cotisation\Cotisation;
  8. use App\Enum\Utils\HttpCodeEnum;
  9. use App\Service\Cotisation\CotisationCreator;
  10. use RuntimeException;
  11. /**
  12. * Class CotisationProvider : custom provider pour assurer l'alimentation de la réponse du GET cotisation
  13. * @package App\DataProvider\Cotisation
  14. */
  15. final class CotisationProvider implements ProviderInterface
  16. {
  17. public function __construct(private CotisationCreator $cotisationCreator)
  18. { }
  19. /**
  20. * @param Operation $operation
  21. * @param mixed[] $uriVariables
  22. * @param mixed[] $context
  23. * @return Cotisation|null
  24. */
  25. public function provide(Operation $operation, array $uriVariables = [], array $context = []): ?Cotisation
  26. {
  27. if ($operation instanceof GetCollection) {
  28. throw new RuntimeException('not supported', HttpCodeEnum::METHOD_NOT_ALLOWED()->getValue());
  29. }
  30. return $this->cotisationCreator->getCotisation($uriVariables['organizationId']);
  31. }
  32. }