1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-09-20 08:21:34 +02:00

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\Cache;
use QuickBooksOnline\API\DataService\DataService;
use App\Services\Import\Quickbooks\Auth as QuickbooksService;
use App\Services\Import\Quickbooks\Repositories\CompanyTokensRepository;
@ -22,8 +21,8 @@ class QuickbooksSDKFactory
{
$company = $user->company();
$tokens = (new CompanyTokensRepository($company->company_key));
$tokens = array_filter($tokens->get());
$token_store = (new CompanyTokensRepository($company->company_key));
$tokens = array_filter($token_store->get());
if(!empty($tokens)) {
$keys = ['refreshTokenKey','QBORealmID'];
if(array_key_exists('access_token', $tokens)) {
@ -38,7 +37,7 @@ class QuickbooksSDKFactory
'state' => Str::random(12)
];
$sdk = DataService::Configure($config);
if (env('APP_DEBUG')) {
if (env('APP_DEBUG')) {
$sdk->setLogLocation(storage_path("logs/quickbooks.log"));
$sdk->enableLog();
}
@ -47,9 +46,16 @@ class QuickbooksSDKFactory
$sdk->throwExceptionOnError(true);
if(array_key_exists('refreshTokenKey', $config) && !array_key_exists('accessTokenKey', $config))
{
$auth = new QuickbooksService($sdk);
$tokens = $auth->refreshTokens();
$auth->saveTokens($tokens);
$tokens = ($sdk->getOAuth2LoginHelper())->refreshToken();
$sdk = $sdk->updateOAuth2Token($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;