* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0 */ namespace PrestaShop\Module\PsAccounts\Account\CommandHandler; use PrestaShop\Module\PsAccounts\Account\Command\MigrateAndLinkV4ShopCommand; use PrestaShop\Module\PsAccounts\Account\Session\Firebase\ShopSession; use PrestaShop\Module\PsAccounts\Api\Client\AccountsClient; use PrestaShop\Module\PsAccounts\Context\ShopContext; use PrestaShop\Module\PsAccounts\Exception\RefreshTokenException; class MigrateAndLinkV4ShopHandler { /** * @var AccountsClient */ private $accountClient; /** * @var ShopContext */ private $shopContext; /** * @var ShopSession */ private $shopSession; public function __construct( AccountsClient $accountClient, ShopContext $shopContext, ShopSession $shopSession ) { $this->accountClient = $accountClient; $this->shopContext = $shopContext; $this->shopSession = $shopSession; } /** * @param MigrateAndLinkV4ShopCommand $command * * @return array * * @throws RefreshTokenException */ public function handle(MigrateAndLinkV4ShopCommand $command) { return $this->shopContext->execInShopContext((int) $command->shopId, function () use ($command) { $shopToken = $this->shopSession->getValidToken(); return $this->accountClient->reonboardShop( $shopToken->getUuid(), $shopToken->getJwt(), $command->payload ); }); } }