From 7ad259bc382a120c78bbe7e747c68090b2a1b033 Mon Sep 17 00:00:00 2001 From: "Harry (hjbdev)" Date: Mon, 31 Mar 2025 15:40:35 +0000 Subject: [PATCH] Service deployment --- app/Actions/Services/CreateService.php | 2 + app/Console/Commands/CreateServiceCommand.php | 44 +++++++++++++++++++ app/Http/Controllers/ServerController.php | 2 +- 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 app/Console/Commands/CreateServiceCommand.php diff --git a/app/Actions/Services/CreateService.php b/app/Actions/Services/CreateService.php index 5cb9bd6..3397e12 100644 --- a/app/Actions/Services/CreateService.php +++ b/app/Actions/Services/CreateService.php @@ -31,5 +31,7 @@ class CreateService $defaultPassword = Str::random(16); dispatch(new DeployService($service, $defaultPassword)); + + return ['defaultPassword' => $defaultPassword, 'service' => $service]; } } diff --git a/app/Console/Commands/CreateServiceCommand.php b/app/Console/Commands/CreateServiceCommand.php new file mode 100644 index 0000000..3de9435 --- /dev/null +++ b/app/Console/Commands/CreateServiceCommand.php @@ -0,0 +1,44 @@ +components->ask('Enter the server ID'); + $server = Server::find($serverId); + + if (!$server) { + $this->components->error('Server not found'); + return; + } + + $serviceType = $this->components->choice('select the service you want to install', [ + 'postgres-17' + ]); + + $serviceName = $this->components->ask('Enter the service name'); + + $service = app(CreateService::class)->execute( + server: $server, + name: $serviceName, + category: ServiceCategory::DATABASE, + type: ServiceType::POSTGRES, + version: '17', + driverName: $serviceType, + ); + + $this->components->info('Service created successfully'); + dump($service); + } +} diff --git a/app/Http/Controllers/ServerController.php b/app/Http/Controllers/ServerController.php index 79d61f9..f4a8acb 100644 --- a/app/Http/Controllers/ServerController.php +++ b/app/Http/Controllers/ServerController.php @@ -103,7 +103,7 @@ class ServerController extends Controller $server = $organisation->servers()->findOrFail($request->route('server')); return inertia('servers/Show', [ - 'server' => $server, + 'server' => $server->load('services'), ]); } }