vendor/sylius/sylius/src/Sylius/Bundle/ChannelBundle/Context/FakeChannel/FakeChannelContext.php line 41

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the Sylius package.
  4.  *
  5.  * (c) Paweł Jędrzejewski
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. declare(strict_types=1);
  11. namespace Sylius\Bundle\ChannelBundle\Context\FakeChannel;
  12. use Sylius\Component\Channel\Context\ChannelContextInterface;
  13. use Sylius\Component\Channel\Context\ChannelNotFoundException;
  14. use Sylius\Component\Channel\Model\ChannelInterface;
  15. use Sylius\Component\Channel\Repository\ChannelRepositoryInterface;
  16. use Symfony\Component\HttpFoundation\Request;
  17. use Symfony\Component\HttpFoundation\RequestStack;
  18. final class FakeChannelContext implements ChannelContextInterface
  19. {
  20.     private FakeChannelCodeProviderInterface $fakeChannelCodeProvider;
  21.     private ChannelRepositoryInterface $channelRepository;
  22.     private RequestStack $requestStack;
  23.     public function __construct(
  24.         FakeChannelCodeProviderInterface $fakeChannelCodeProvider,
  25.         ChannelRepositoryInterface $channelRepository,
  26.         RequestStack $requestStack
  27.     ) {
  28.         $this->fakeChannelCodeProvider $fakeChannelCodeProvider;
  29.         $this->channelRepository $channelRepository;
  30.         $this->requestStack $requestStack;
  31.     }
  32.     public function getChannel(): ChannelInterface
  33.     {
  34.         $fakeChannelCode $this->fakeChannelCodeProvider->getCode($this->getMasterRequest());
  35.         if (null === $fakeChannelCode) {
  36.             throw new ChannelNotFoundException();
  37.         }
  38.         $channel $this->channelRepository->findOneByCode($fakeChannelCode);
  39.         if (null === $channel) {
  40.             throw new ChannelNotFoundException();
  41.         }
  42.         return $channel;
  43.     }
  44.     /**
  45.      * @throws ChannelNotFoundException
  46.      */
  47.     private function getMasterRequest(): Request
  48.     {
  49.         $masterRequest $this->requestStack->getMasterRequest();
  50.         if (null === $masterRequest) {
  51.             throw new ChannelNotFoundException();
  52.         }
  53.         return $masterRequest;
  54.     }
  55. }