use repo and sdk for routines instead of service

This commit is contained in:
karneaud 2024-08-13 12:34:45 -04:00
parent ae75f7228c
commit b057908164

View File

@ -8,7 +8,6 @@ use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Cache;
use QuickBooksOnline\API\DataService\DataService; use QuickBooksOnline\API\DataService\DataService;
use App\Services\Import\Quickbooks\Auth as QuickbooksService;
use App\Services\Import\Quickbooks\Repositories\CompanyTokensRepository; use App\Services\Import\Quickbooks\Repositories\CompanyTokensRepository;
@ -22,8 +21,8 @@ class QuickbooksSDKFactory
{ {
$company = $user->company(); $company = $user->company();
$tokens = (new CompanyTokensRepository($company->company_key)); $token_store = (new CompanyTokensRepository($company->company_key));
$tokens = array_filter($tokens->get()); $tokens = array_filter($token_store->get());
if(!empty($tokens)) { if(!empty($tokens)) {
$keys = ['refreshTokenKey','QBORealmID']; $keys = ['refreshTokenKey','QBORealmID'];
if(array_key_exists('access_token', $tokens)) { if(array_key_exists('access_token', $tokens)) {
@ -38,7 +37,7 @@ class QuickbooksSDKFactory
'state' => Str::random(12) 'state' => Str::random(12)
]; ];
$sdk = DataService::Configure($config); $sdk = DataService::Configure($config);
if (env('APP_DEBUG')) { if (env('APP_DEBUG')) {
$sdk->setLogLocation(storage_path("logs/quickbooks.log")); $sdk->setLogLocation(storage_path("logs/quickbooks.log"));
$sdk->enableLog(); $sdk->enableLog();
} }
@ -47,9 +46,16 @@ class QuickbooksSDKFactory
$sdk->throwExceptionOnError(true); $sdk->throwExceptionOnError(true);
if(array_key_exists('refreshTokenKey', $config) && !array_key_exists('accessTokenKey', $config)) if(array_key_exists('refreshTokenKey', $config) && !array_key_exists('accessTokenKey', $config))
{ {
$auth = new QuickbooksService($sdk); $tokens = ($sdk->getOAuth2LoginHelper())->refreshToken();
$tokens = $auth->refreshTokens(); $sdk = $sdk->updateOAuth2Token($tokens);
$auth->saveTokens($tokens); $tokens = ($sdk->getOAuth2LoginHelper())->getAccessToken();
$access_token = $tokens->getAccessToken();
$realm = $tokens->getRealmID();
$refresh_token = $tokens->getRefreshToken();
$access_token_expires = $tokens->getAccessTokenExpiresAt();
$refresh_token_expires = $tokens->getRefreshTokenExpiresAt();
$tokens = compact('access_token', 'refresh_token','access_token_expires', 'refresh_token_expires','realm');
$token_store->save($tokens);
} }
return $sdk; return $sdk;