FleetCart/Modules/Currency/Providers/CurrencyExchangeRateServiceProvider.php

48 lines
1.4 KiB
PHP
Raw Normal View History

2023-06-11 12:14:03 +00:00
<?php
namespace Modules\Currency\Providers;
use Swap\Builder;
use Illuminate\Support\ServiceProvider;
use Modules\Currency\Services\CurrencyRateExchanger;
class CurrencyExchangeRateServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
if (! config('app.installed')) {
return;
}
$this->setupCurrencyRateExchangeService();
$this->app->singleton(CurrencyRateExchanger::class, function () {
$service = setting('currency_rate_exchange_service', 'array');
$options = config("fleetcart.modules.currency.config.services.{$service}");
$swap = (new Builder)->add($service, $options)->build();
return new CurrencyRateExchanger($swap);
});
}
/**
* Setup currency rate exchange service.
*
* @return void
*/
private function setupCurrencyRateExchangeService()
{
config([
'fleetcart.modules.currency.config.services.fixer.access_key' => setting('fixer_access_key'),
'fleetcart.modules.currency.config.services.forge.api_key' => setting('forge_api_key'),
'fleetcart.modules.currency.config.services.currency_data_feed.api_key' => setting('currency_data_feed_api_key'),
]);
}
}