* @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\Session\Firebase; use PrestaShop\Module\PsAccounts\Account\Session\SessionInterface; use PrestaShop\Module\PsAccounts\Account\Token\Token; use PrestaShop\Module\PsAccounts\Repository\ConfigurationRepository; class ShopSession extends FirebaseSession implements SessionInterface { /** * @var ConfigurationRepository */ protected $configurationRepository; /** * @param ConfigurationRepository $configurationRepository * @param \PrestaShop\Module\PsAccounts\Account\Session\ShopSession $shopSession */ public function __construct( ConfigurationRepository $configurationRepository, \PrestaShop\Module\PsAccounts\Account\Session\ShopSession $shopSession ) { $this->configurationRepository = $configurationRepository; parent::__construct($shopSession); } /** * @return Token */ public function getToken() { return new Token( $this->configurationRepository->getFirebaseIdToken(), $this->configurationRepository->getFirebaseRefreshToken() ); } /** * @return void */ public function cleanup() { $this->configurationRepository->updateFirebaseIdAndRefreshTokens('', ''); } /** * @param string $token * @param string $refreshToken * * @return void */ public function setToken($token, $refreshToken = null) { $this->configurationRepository->updateFirebaseIdAndRefreshTokens($token, $refreshToken); } }