* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0 */ use PrestaShop\Module\PsAccounts\Handler\Error\Sentry; use PrestaShop\Module\PsAccounts\Presenter\PsAccountsPresenter; use PrestaShop\Module\PsAccounts\Repository\ShopTokenRepository; use PrestaShop\Module\PsAccounts\Service\ShopLinkAccountService; /** * Controller for all ajax calls. */ class AdminAjaxPsAccountsController extends ModuleAdminController { /** * @var Ps_accounts */ public $module; /** * AdminAjaxPsAccountsController constructor. * * @throws Exception */ public function __construct() { parent::__construct(); } /** * @return void * * @throws Throwable */ public function ajaxProcessGetOrRefreshToken() { try { /** @var ShopTokenRepository $shopTokenService */ $shopTokenService = $this->module->getService(ShopTokenRepository::class); header('Content-Type: text/json'); $this->ajaxDie( json_encode([ 'token' => $shopTokenService->getOrRefreshToken()->toString(), 'refreshToken' => $shopTokenService->getRefreshToken(), ]) ); } catch (Exception $e) { Sentry::captureAndRethrow($e); } } /** * @return void * * @throws Throwable */ //public function displayAjaxUnlinkShop() public function ajaxProcessUnlinkShop() { try { /** @var ShopLinkAccountService $shopLinkAccountService */ $shopLinkAccountService = $this->module->getService(ShopLinkAccountService::class); $response = $shopLinkAccountService->unlinkShop(); http_response_code($response['httpCode']); header('Content-Type: text/json'); $this->ajaxDie(json_encode($response['body'])); } catch (Exception $e) { Sentry::captureAndRethrow($e); } } /** * @return void * * @throws Throwable */ public function ajaxProcessGetContext() { try { $psxName = Tools::getValue('psx_name'); /** @var PsAccountsPresenter $presenter */ $presenter = $this->module->getService(PsAccountsPresenter::class); header('Content-Type: text/json'); $this->ajaxDie(json_encode($presenter->present($psxName))); } catch (Exception $e) { Sentry::captureAndRethrow($e); } } }