Implement Keystone environment deployments
This commit is contained in:
45
app/Http/Controllers/EnvironmentVariableController.php
Normal file
45
app/Http/Controllers/EnvironmentVariableController.php
Normal file
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Enums\EnvironmentVariableSource;
|
||||
use App\Http\Requests\StoreEnvironmentVariableRequest;
|
||||
use App\Models\Organisation;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Inertia\Response;
|
||||
|
||||
class EnvironmentVariableController extends Controller
|
||||
{
|
||||
public function create(Request $request): Response
|
||||
{
|
||||
$organisation = Organisation::findOrFail($request->route('organisation'));
|
||||
$application = $organisation->applications()->findOrFail($request->route('application'));
|
||||
$environment = $application->environments()->findOrFail($request->route('environment'));
|
||||
|
||||
return inertia('environment-variables/Create', [
|
||||
'application' => $application,
|
||||
'environment' => $environment,
|
||||
]);
|
||||
}
|
||||
|
||||
public function store(StoreEnvironmentVariableRequest $request): RedirectResponse
|
||||
{
|
||||
$organisation = Organisation::findOrFail($request->route('organisation'));
|
||||
$application = $organisation->applications()->findOrFail($request->route('application'));
|
||||
$environment = $application->environments()->findOrFail($request->route('environment'));
|
||||
|
||||
$environment->variables()->updateOrCreate([
|
||||
'key' => $request->string('key')->toString(),
|
||||
], [
|
||||
'value' => $request->string('value')->toString(),
|
||||
'source' => EnvironmentVariableSource::USER,
|
||||
'service_slice_id' => null,
|
||||
'overridable' => true,
|
||||
]);
|
||||
|
||||
return redirect()
|
||||
->route('applications.show', ['organisation' => $organisation->id, 'application' => $application->id])
|
||||
->with('success', 'Environment variable saved.');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user