* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0 */ namespace PrestaShop\Module\PrestashopCheckout\PayPal\Order\QueryHandler; use PrestaShop\Module\PrestashopCheckout\PayPal\Order\Query\GetPayPalOrderQuery; use PrestaShop\Module\PrestashopCheckout\PayPal\Order\Query\GetPayPalOrderQueryResult; use PrestaShop\Module\PrestashopCheckout\Repository\PsCheckoutCartRepository; use Psr\SimpleCache\CacheInterface; class GetPayPalOrderQueryHandler { /** * @var CacheInterface */ private $orderCache; /** * @var PsCheckoutCartRepository */ private $checkoutCartRepository; public function __construct(CacheInterface $orderCache, PsCheckoutCartRepository $checkoutCartRepository) { $this->orderCache = $orderCache; $this->checkoutCartRepository = $checkoutCartRepository; } /** * @param GetPayPalOrderQuery $query * * @return GetPayPalOrderQueryResult * * @throws \PrestaShopException */ public function handle(GetPayPalOrderQuery $query) { $orderId = !$query->getOrderId()->getValue() ? null : $query->getOrderId()->getValue(); if (!$orderId) { $psCheckoutCart = $this->checkoutCartRepository->findOneByCartId($query->getCartId()->getValue()); $orderId = $psCheckoutCart->paypal_order; } return new GetPayPalOrderQueryResult($this->orderCache->get($orderId)); } }