diff --git a/config.xml b/config.xml index 1e1792005..c40c339cd 100644 --- a/config.xml +++ b/config.xml @@ -2,7 +2,7 @@ ps_checkout - + diff --git a/config/common.yml b/config/common.yml index 36755e0c7..d1f5fd08b 100644 --- a/config/common.yml +++ b/config/common.yml @@ -14,11 +14,7 @@ services: ps_checkout.module.version: class: 'PrestaShop\Module\PrestashopCheckout\Version\Version' - factory: - [ - 'PrestaShop\Module\PrestashopCheckout\Version\Version', - "buildFromString", - ] + factory: ["PrestaShop\\Module\\PrestashopCheckout\\Version\\Version", "buildFromString"] public: true arguments: - '@=service("ps_checkout.module").version' diff --git a/controllers/admin/AdminAjaxPrestashopCheckoutController.php b/controllers/admin/AdminAjaxPrestashopCheckoutController.php index 8046c0e63..10a283ec7 100755 --- a/controllers/admin/AdminAjaxPrestashopCheckoutController.php +++ b/controllers/admin/AdminAjaxPrestashopCheckoutController.php @@ -753,19 +753,24 @@ public function ajaxProcessGetOrRefreshToken() $psAccountRepository = $this->module->getService('ps_checkout.repository.prestashop.account'); try { - $token = $psAccountRepository->getIdToken(); - - $this->ajaxDie(json_encode([ + $this->exitWithResponse([ + 'httpCode' => 200, 'status' => true, - 'token' => $token, - ], JSON_PRETTY_PRINT)); - } catch (\Exception $exception) { - http_response_code($exception->getCode()); - - $this->ajaxDie(json_encode([ + 'token' => $psAccountRepository->getIdToken(), + 'shopId' => $psAccountRepository->getShopUuid(), + 'isAccountLinked' => $psAccountRepository->isAccountLinked(), + ]); + } catch (Exception $exception) { + $this->exitWithResponse([ + 'httpCode' => 500, 'status' => false, - 'error' => $exception->getMessage(), - ], JSON_PRETTY_PRINT)); + 'error' => sprintf( + '%s %d : %s', + get_class($exception), + $exception->getCode(), + $exception->getMessage() + ), + ]); } } diff --git a/ps_checkout.php b/ps_checkout.php index e9e7afc7d..6735127af 100755 --- a/ps_checkout.php +++ b/ps_checkout.php @@ -123,7 +123,7 @@ class Ps_checkout extends PaymentModule // Needed in order to retrieve the module version easier (in api call headers) than instanciate // the module each time to get the version - const VERSION = '7.3.5.1'; + const VERSION = '7.3.5.2'; const INTEGRATION_DATE = '2022-14-06'; @@ -144,7 +144,7 @@ public function __construct() // We cannot use the const VERSION because the const is not computed by addons marketplace // when the zip is uploaded - $this->version = '7.3.5.1'; + $this->version = '7.3.5.2'; $this->author = 'PrestaShop'; $this->currencies = true; $this->currencies_mode = 'checkbox'; @@ -526,18 +526,34 @@ public function hookDisplayFooterProduct() public function getContent() { - /** @var \PrestaShop\PsAccountsInstaller\Installer\Facade\PsAccounts $psAccountsFacade */ - $psAccountsFacade = $this->getService('ps_accounts.facade'); - $env = new \PrestaShop\Module\PrestashopCheckout\Environment\Env(); + try { + /** @var \PrestaShop\PsAccountsInstaller\Installer\Facade\PsAccounts $psAccountsFacade */ + $psAccountsFacade = $this->getService('ps_accounts.facade'); + /** @var \PrestaShop\PsAccountsInstaller\Installer\Presenter\InstallerPresenter $psAccountsPresenter */ + $psAccountsPresenter = $psAccountsFacade->getPsAccountsPresenter(); + // @phpstan-ignore-next-line + $contextPsAccounts = $psAccountsPresenter->present($this->name); + } catch (Exception $exception) { + $contextPsAccounts = []; + $this->getLogger()->error( + 'Failed to get PsAccounts context', + [ + 'exception' => get_class($exception), + 'exceptionCode' => $exception->getCode(), + 'exceptionMessage' => $exception->getMessage(), + ] + ); + } /** @var \PrestaShop\Module\PrestashopCheckout\Presenter\Store\StorePresenter $storePresenter */ $storePresenter = $this->getService('ps_checkout.store.store'); Media::addJsDef([ 'store' => $storePresenter->present(), - 'contextPsAccounts' => $psAccountsFacade->getPsAccountsPresenter()->present(), + 'contextPsAccounts' => $contextPsAccounts, ]); + $env = new \PrestaShop\Module\PrestashopCheckout\Environment\Env(); $boSdkUrl = $env->getEnv('CHECKOUT_BO_SDK_URL'); if (substr($boSdkUrl, -3) !== '.js') { $boSdkVersion = $env->getEnv('CHECKOUT_BO_SDK_VERSION');