Files
panel/app/Http/Controllers/Admin/Eggs/EggScriptController.php

62 lines
1.7 KiB
PHP
Raw Normal View History

<?php
2024-03-14 01:27:50 -04:00
namespace App\Http\Controllers\Admin\Eggs;
use Illuminate\View\View;
2024-03-12 22:39:16 -04:00
use App\Models\Egg;
use Illuminate\Http\RedirectResponse;
use Prologue\Alerts\AlertsMessageBag;
use Illuminate\View\Factory as ViewFactory;
2024-03-12 22:39:16 -04:00
use App\Http\Controllers\Controller;
use App\Services\Eggs\Scripts\InstallScriptService;
use App\Http\Requests\Admin\Egg\EggScriptFormRequest;
class EggScriptController extends Controller
{
/**
* EggScriptController constructor.
*/
public function __construct(
protected AlertsMessageBag $alert,
protected InstallScriptService $installScriptService,
protected ViewFactory $view
) {
}
/**
* Handle requests to render installation script for an Egg.
*/
public function index(int $egg): View
{
2024-03-16 20:14:50 -04:00
$egg = Egg::with('scriptFrom', 'configFrom')
->where('id', $egg)
->firstOrFail();
2024-03-16 20:14:50 -04:00
$copy = Egg::query()
->whereNull('copy_script_from')
->whereNot('id', $egg->id)
->firstOrFail();
$rely = Egg::query()->where('copy_script_from', $egg->id)->firstOrFail();
2024-03-16 23:23:07 -04:00
return view('admin.eggs.scripts', [
'copyFromOptions' => $copy,
'relyOnScript' => $rely,
'egg' => $egg,
]);
}
/**
* Handle a request to update the installation script for an Egg.
*
2024-03-12 22:39:16 -04:00
* @throws \App\Exceptions\Model\DataValidationException
*/
2020-10-05 21:29:35 -07:00
public function update(EggScriptFormRequest $request, Egg $egg): RedirectResponse
{
$this->installScriptService->handle($egg, $request->normalize());
2024-03-14 01:27:50 -04:00
$this->alert->success(trans('admin/eggs.notices.script_updated'))->flash();
2024-03-14 01:27:50 -04:00
return redirect()->route('admin.eggs.scripts', $egg);
}
}