46 lines
1.7 KiB
PHP
46 lines
1.7 KiB
PHP
<?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.');
|
|
}
|
|
}
|