* @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 Exception; use PrestaShop\Module\PrestashopCheckout\PayPal\Order\Exception\PayPalOrderException; use PrestaShop\Module\PrestashopCheckout\PayPal\Order\Query\GetCurrentPayPalOrderStatusQuery; use PrestaShop\Module\PrestashopCheckout\PayPal\Order\Query\GetCurrentPayPalOrderStatusQueryResult; use PrestaShop\Module\PrestashopCheckout\Repository\PsCheckoutCartRepository; class GetCurrentPayPalOrderStatusQueryHandler { /** * @var PsCheckoutCartRepository */ private $psCheckoutCartRepository; public function __construct(PsCheckoutCartRepository $psCheckoutCartRepository) { $this->psCheckoutCartRepository = $psCheckoutCartRepository; } public function handle(GetCurrentPayPalOrderStatusQuery $getPayPalOrderQuery) { try { $psCheckoutCart = $this->psCheckoutCartRepository->findOneByPayPalOrderId($getPayPalOrderQuery->getOrderPayPalId()->getValue()); } catch (Exception $exception) { throw new PayPalOrderException('Cannot retrieve cart', PayPalOrderException::PRESTASHOP_CART_NOT_FOUND, $exception); } return new GetCurrentPayPalOrderStatusQueryResult( $psCheckoutCart->getPaypalOrderId(), $psCheckoutCart->getPaypalStatus() ); } }