first upload all files
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
<?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'),
|
||||
]);
|
||||
}
|
||||
}
|
||||
48
Modules/Currency/Providers/CurrencyServiceProvider.php
Normal file
48
Modules/Currency/Providers/CurrencyServiceProvider.php
Normal file
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Currency\Providers;
|
||||
|
||||
use Modules\Support\Traits\AddsAsset;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use Modules\Admin\Ui\Facades\TabManager;
|
||||
use Illuminate\Console\Scheduling\Schedule;
|
||||
use Modules\Currency\Admin\CurrencyRateTabs;
|
||||
use Modules\Currency\Console\RefreshCurrencyRatesCommand;
|
||||
|
||||
class CurrencyServiceProvider extends ServiceProvider
|
||||
{
|
||||
use AddsAsset;
|
||||
|
||||
/**
|
||||
* Bootstrap the application services.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function boot()
|
||||
{
|
||||
if (! config('app.installed')) {
|
||||
return;
|
||||
}
|
||||
|
||||
TabManager::register('currency_rates', CurrencyRateTabs::class);
|
||||
|
||||
$this->addAdminAssets('admin.currency_rates.index', ['admin.currency.js']);
|
||||
|
||||
if ($this->app->runningInConsole() && setting('auto_refresh_currency_rates', false)) {
|
||||
$this->commands(RefreshCurrencyRatesCommand::class);
|
||||
|
||||
$this->registerScheduler();
|
||||
}
|
||||
}
|
||||
|
||||
private function registerScheduler()
|
||||
{
|
||||
$this->app->booted(function ($app) {
|
||||
$frequency = setting('auto_refresh_currency_rate_frequency');
|
||||
|
||||
if (in_array($frequency, ['daily', 'weekly', 'monthly'])) {
|
||||
$app[Schedule::class]->command(RefreshCurrencyRatesCommand::class)->{$frequency}();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
19
Modules/Currency/Providers/EventServiceProvider.php
Normal file
19
Modules/Currency/Providers/EventServiceProvider.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Currency\Providers;
|
||||
|
||||
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
|
||||
|
||||
class EventServiceProvider extends ServiceProvider
|
||||
{
|
||||
/**
|
||||
* The event listener mappings for the application.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $listen = [
|
||||
\Modules\Setting\Events\SettingSaved::class => [
|
||||
\Modules\Currency\Listeners\CreateCurrencyRates::class,
|
||||
],
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user