* @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; use PrestaShop\Module\PrestashopCheckout\Order\Exception\OrderException; class CheckTransitionPayPalOrderStatusService { /** * @param string $oldStatus * @param string $newStatus * * @return bool * * @throws OrderException */ public function checkAvailableStatus($oldStatus, $newStatus) { if (!is_string($oldStatus)) { throw new OrderException(sprintf('Type of oldStatus (%s) is not string', gettype($oldStatus)), OrderException::STATUS_CHECK_AVAILABLE_BAD_PARAMETER); } if (!is_string($newStatus)) { throw new OrderException(sprintf('Type of newStatus (%s) is not string', gettype($newStatus)), OrderException::STATUS_CHECK_AVAILABLE_BAD_PARAMETER); } if (!key_exists($oldStatus, PayPalOrderStatus::TRANSITION_AVAILABLE)) { throw new OrderException(sprintf('The oldStatus doesn\'t exist (%s)', $oldStatus), OrderException::STATUS_CHECK_AVAILABLE_BAD_PARAMETER); } return in_array($newStatus, PayPalOrderStatus::TRANSITION_AVAILABLE[$oldStatus], true); } }