diff --git a/app/Traits/Settings.php b/app/Traits/Settings.php new file mode 100644 index 000000000..6032bfabd --- /dev/null +++ b/app/Traits/Settings.php @@ -0,0 +1,28 @@ +all(); + + if (! empty($settings)) { + return setting($key); + } + + $company_id = $this->getCompanyId(); + + if (empty($company_id)) { + return $default; + } + + return Setting::companyId($company_id)->where('key', $key)->pluck('value')->first(); + } +} diff --git a/app/Traits/SiteApi.php b/app/Traits/SiteApi.php index e6650bd14..ab5d7a7a4 100644 --- a/app/Traits/SiteApi.php +++ b/app/Traits/SiteApi.php @@ -2,8 +2,8 @@ namespace App\Traits; -use App\Utilities\Info; use Akaunting\Version\Version; +use App\Utilities\Info; use Exception; use GuzzleHttp\Client; use GuzzleHttp\Exception\ConnectException; @@ -18,7 +18,7 @@ trait SiteApi $client = new Client(['verify' => false, 'base_uri' => static::$base_uri]); $headers['headers'] = [ - 'Authorization' => 'Bearer ' . setting('apps.api_key'), + 'Authorization' => 'Bearer ' . Info::getApiKey(), 'Accept' => 'application/json', 'Referer' => app()->runningInConsole() ? config('app.url') : url('/'), 'Akaunting' => Version::short(), diff --git a/app/Utilities/Info.php b/app/Utilities/Info.php index c8e945025..32ccb46ad 100644 --- a/app/Utilities/Info.php +++ b/app/Utilities/Info.php @@ -6,6 +6,7 @@ use Akaunting\Version\Version; use App\Models\Common\Company; use App\Models\Common\Contact; use App\Models\Document\Document; +use App\Traits\Settings; use Composer\InstalledVersions; use Illuminate\Support\Facades\DB; @@ -16,7 +17,7 @@ class Info static $info = []; $basic = [ - 'api_key' => setting('apps.api_key'), + 'api_key' => static::getApiKey(), 'ip' => static::ip(), ]; @@ -87,4 +88,11 @@ class Info ? request()->header('CF_CONNECTING_IP') : request()->ip(); } + + public static function getApiKey(): string + { + $setting = new class() { use Settings; }; + + return $setting->getSettingValue('apps.api_key'); + } }