diff --git a/app/Actions/FirewallRules/UninstallFirewallRule.php b/app/Actions/FirewallRules/UninstallFirewallRule.php index 6c445fc..a831b50 100644 --- a/app/Actions/FirewallRules/UninstallFirewallRule.php +++ b/app/Actions/FirewallRules/UninstallFirewallRule.php @@ -25,7 +25,7 @@ class UninstallFirewallRule } $firewallRule->update([ - 'status' => FirewallRuleStatus::UNINSTALLED, + 'status' => FirewallRuleStatus::REMOVED, ]); } } diff --git a/app/Enums/FirewallRuleStatus.php b/app/Enums/FirewallRuleStatus.php index 66262c6..8b7cbce 100644 --- a/app/Enums/FirewallRuleStatus.php +++ b/app/Enums/FirewallRuleStatus.php @@ -8,7 +8,7 @@ enum FirewallRuleStatus: string { use Arrayable; - case UNINSTALLED = 'uninstalled'; + case NOT_INSTALLED = 'not-installed'; case INSTALLED = 'installed'; case FAILED = 'failed'; case REMOVED = 'removed'; diff --git a/app/Http/Controllers/ServerController.php b/app/Http/Controllers/ServerController.php index c1bcb96..a600fc8 100644 --- a/app/Http/Controllers/ServerController.php +++ b/app/Http/Controllers/ServerController.php @@ -59,7 +59,8 @@ class ServerController extends Controller public function store(Request $request) { $sudoPassword = Str::random(32); - $providerService = app(GetProviderService::class)->execute($request->provider); + $provider = Provider::findOrFail($request->provider); + $providerService = $provider->service(); if (! $providerService) { return back()->with('error', 'Invalid provider'); @@ -76,8 +77,8 @@ class ServerController extends Controller $server = $organisation->servers()->create([ 'name' => $createdServer->name, - // 'provider' => ServerProvider::tryFrom($request->provider), // @todo - 'provider_id' => $createdServer->id, + 'provider_id' => $provider->id, + 'external_id' => $createdServer->id, 'ipv4' => $createdServer->ipv4, 'ipv6' => $createdServer->ipv6, 'provider_status' => $createdServer->status, diff --git a/app/Models/Organisation.php b/app/Models/Organisation.php index fc4bebf..5be0714 100644 --- a/app/Models/Organisation.php +++ b/app/Models/Organisation.php @@ -40,6 +40,11 @@ class Organisation extends Model return $this->hasMany(Application::class); } + public function providers(): HasMany + { + return $this->hasMany(Provider::class); + } + public static function createUniqueSlug(string $name): string { $slug = Str::slug($name); diff --git a/database/migrations/2025_03_27_120552_create_servers_table.php b/database/migrations/2025_03_27_120552_create_servers_table.php index ef5ce1b..7ae89d4 100644 --- a/database/migrations/2025_03_27_120552_create_servers_table.php +++ b/database/migrations/2025_03_27_120552_create_servers_table.php @@ -17,7 +17,7 @@ return new class extends Migration $table->foreignIdFor(Network::class, 'external_network_id'); $table->foreignIdFor(Network::class, 'internal_network_id'); $table->foreignIdFor(Provider::class); - $table->string('provider_external_id')->nullable(); + $table->string('external_id')->nullable(); $table->string('name'); $table->string('ipv4'); $table->string('ipv6'); diff --git a/database/migrations/2025_03_31_170943_create_firewall_rules_table.php b/database/migrations/2025_03_31_170943_create_firewall_rules_table.php index 338358d..521dbff 100644 --- a/database/migrations/2025_03_31_170943_create_firewall_rules_table.php +++ b/database/migrations/2025_03_31_170943_create_firewall_rules_table.php @@ -12,7 +12,7 @@ return new class extends Migration { Schema::create('firewall_rules', function (Blueprint $table) { $table->id(); - $table->string('status')->default(FirewallRuleStatus::NOT_APPLIED->value); + $table->string('status')->default(FirewallRuleStatus::NOT_INSTALLED->value); $table->foreignIdfor(Server::class); $table->string('type'); $table->string('ports'); diff --git a/database/migrations/2025_04_06_171437_create_networks_table.php b/database/migrations/2025_04_06_171437_create_networks_table.php index 91d9a8a..822b654 100644 --- a/database/migrations/2025_04_06_171437_create_networks_table.php +++ b/database/migrations/2025_04_06_171437_create_networks_table.php @@ -14,7 +14,7 @@ return new class extends Migration $table->id(); $table->foreignIdFor(Organisation::class); $table->foreignIdFor(Provider::class); - $table->string('provider_external_id')->nullable(); + $table->string('external_id')->nullable(); $table->string('type'); $table->string('name'); $table->string('ip_range');