Files
ploi-core/app/Actions/Provider/SynchronizeProviderAction.php
Ralph J. Smit 9d1b12b0a3 Admin panel v1
2022-08-05 18:11:23 +02:00

40 lines
1002 B
PHP

<?php
namespace App\Actions\Provider;
use App\Models\Provider;
use App\Services\Ploi\Ploi;
class SynchronizeProviderAction
{
public function execute(int $ploiProviderId): Provider
{
$ploiProvider = Ploi::make()->user()->serverProviders($ploiProviderId)->getData();
$provider = Provider::updateOrCreate([
'ploi_id' => $ploiProvider->id,
], [
'label' => $ploiProvider->label,
'name' => $ploiProvider->name,
]);
foreach ($ploiProvider->provider->plans as $plan) {
$provider->plans()->updateOrCreate([
'plan_id' => $plan->id,
], [
'label' => $plan->name,
]);
}
foreach ($ploiProvider->provider->regions as $region) {
$provider->regions()->updateOrCreate([
'region_id' => $region->id,
], [
'label' => $region->name,
]);
}
return $provider;
}
}