Implement Keystone environment deployments
This commit is contained in:
48
app/Http/Controllers/ServiceUpdateController.php
Normal file
48
app/Http/Controllers/ServiceUpdateController.php
Normal file
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Actions\Services\CreateStatefulServiceUpdateOperation;
|
||||
use App\Enums\ServiceType;
|
||||
use App\Http\Requests\StoreServiceUpdateRequest;
|
||||
use App\Models\Organisation;
|
||||
use App\Models\Server;
|
||||
use App\Models\Service;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Inertia\Response;
|
||||
|
||||
class ServiceUpdateController extends Controller
|
||||
{
|
||||
public function create(Organisation $organisation, Server $server, Service $service): Response
|
||||
{
|
||||
abort_unless((int) $server->organisation_id === (int) $organisation->id && (int) $service->server_id === (int) $server->id, 404);
|
||||
abort_unless(in_array($service->type, [ServiceType::POSTGRES, ServiceType::VALKEY], true), 404);
|
||||
|
||||
return inertia('services/updates/Create', [
|
||||
'server' => $server,
|
||||
'service' => $service,
|
||||
'backupAvailable' => (bool) ($service->config['backup_enabled'] ?? false),
|
||||
]);
|
||||
}
|
||||
|
||||
public function store(
|
||||
StoreServiceUpdateRequest $request,
|
||||
Organisation $organisation,
|
||||
Server $server,
|
||||
Service $service,
|
||||
CreateStatefulServiceUpdateOperation $createStatefulServiceUpdateOperation,
|
||||
): RedirectResponse {
|
||||
abort_unless((int) $server->organisation_id === (int) $organisation->id && (int) $service->server_id === (int) $server->id, 404);
|
||||
|
||||
$createStatefulServiceUpdateOperation->execute(
|
||||
service: $service,
|
||||
imageDigest: $request->string('image_digest')->toString(),
|
||||
backupRequested: $request->boolean('backup_requested'),
|
||||
);
|
||||
|
||||
return redirect()->route('servers.show', [
|
||||
'organisation' => $organisation->id,
|
||||
'server' => $server->id,
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user