From 6d0952231aefc5c8180082abf445fa729e4508ec Mon Sep 17 00:00:00 2001 From: karneaud Date: Thu, 8 Aug 2024 12:55:17 -0400 Subject: [PATCH] get the tokens from store or sdk --- app/Services/Import/Quickbooks/Auth.php | 29 +++++++++++++++++-------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/app/Services/Import/Quickbooks/Auth.php b/app/Services/Import/Quickbooks/Auth.php index 667a0bccacb0..a8f08c7cfdf0 100644 --- a/app/Services/Import/Quickbooks/Auth.php +++ b/app/Services/Import/Quickbooks/Auth.php @@ -3,6 +3,7 @@ namespace App\Services\Import\Quickbooks; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Cache; +use App\Services\Import\Quickbooks\Repositories\CompanyTokensRepository; use App\Services\Import\QuickBooks\Contracts\SDKInterface as QuickbooksInterface; final class Auth @@ -35,21 +36,31 @@ final class Auth return $this->sdk->getState(); } + public function saveTokens($key, $tokens) + { + $token_store = new CompanyTokensRepository($key); + $token_store->save($tokens); + } + public function getAccessToken() : array { - // TODO: Cache token and - $token = $this->sdk->getAccessToken(); - $access_token = $token->getAccessToken(); - $refresh_token = $token->getRefreshToken(); - $access_token_expires = $token->getAccessTokenExpiresAt(); - $refresh_token_expires = $token->getRefreshTokenExpiresAt(); - //TODO: Cache token object. Update $sdk instance? - return compact('access_token', 'refresh_token','access_token_expires', 'refresh_token_expires'); + $token_store = new CompanyTokensRepository(); + $tokens = $token_store->get(); + if(empty($tokens)) { + $token = $this->sdk->getAccessToken(); + $access_token = $token->getAccessToken(); + $realm = $token->getRealmID(); + $refresh_token = $token->getRefreshToken(); + $access_token_expires = $token->getAccessTokenExpiresAt(); + $refresh_token_expires = $token->getRefreshTokenExpiresAt(); + $tokens = compact('access_token', 'refresh_token','access_token_expires', 'refresh_token_expires','realm'); + } + + return $tokens; } public function getRefreshToken() : array { - // TODO: Check if token is Cached otherwise fetch a new one and Cache token and expire return $this->getAccessToken(); } } \ No newline at end of file