Files
ploi-core/app/Console/Commands/Core/Synchronize.php
Dennis 817f6a175c wip
2022-06-27 10:23:57 +02:00

57 lines
1.7 KiB
PHP

<?php
namespace App\Console\Commands\Core;
use App\Services\Ploi\Ploi;
use Illuminate\Console\Command;
class Synchronize extends Command
{
protected $signature = 'core:synchronize';
protected $description = 'Synchronize data';
public function handle()
{
$ploi = new Ploi(config('services.ploi.token'));
$data = collect($ploi->user()->serverProviders()->getData());
foreach ($data as $apiProvider) {
$provider = \App\Models\Provider::where('ploi_id', $apiProvider->id)->first();
if (!$provider) {
$provider = \App\Models\Provider::create([
'ploi_id' => $apiProvider->id,
'label' => $apiProvider->label,
'name' => $apiProvider->label
]);
}
// Synchronize the plans
foreach ($apiProvider->provider->plans as $apiPlan) {
$planCheck = $provider->plans()->where('plan_id', $apiPlan->id)->count();
if (!$planCheck) {
$provider->plans()->create([
'plan_id' => $apiPlan->id,
'label' => $apiPlan->name
]);
}
}
// Synchronize the regions
foreach ($apiProvider->provider->regions as $apiRegion) {
$regionCheck = $provider->regions()->where('region_id', $apiRegion->id)->count();
if (!$regionCheck) {
$provider->regions()->create([
'region_id' => $apiRegion->id,
'label' => $apiRegion->name
]);
}
}
}
}
}