vito/app/Http/Controllers/SiteController.php
Saeed Vaziry b2083fc6b2
Migrate to HTMX (#114)
Dropped Livewire
Added HTMX
Added Blade code lint
Drop Mysql and Redis
Migrate to SQLite
2024-03-06 17:02:59 +01:00

61 lines
1.5 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Actions\Site\CreateSite;
use App\Enums\SiteType;
use App\Facades\Toast;
use App\Helpers\HtmxResponse;
use App\Models\Server;
use App\Models\Site;
use App\Models\SourceControl;
use Illuminate\Contracts\View\View;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
class SiteController extends Controller
{
public function index(Server $server): View
{
return view('sites.index', [
'server' => $server,
'sites' => $server->sites()->orderByDesc('id')->get(),
]);
}
public function store(Server $server, Request $request): HtmxResponse
{
$site = app(CreateSite::class)->create($server, $request->input());
Toast::success('Site created');
return htmx()->redirect(route('servers.sites.show', [$server, $site]));
}
public function create(Server $server): View
{
return view('sites.create', [
'server' => $server,
'type' => old('type', request()->query('type', SiteType::LARAVEL)),
'sourceControls' => SourceControl::all(),
]);
}
public function show(Server $server, Site $site): View
{
return view('sites.show', [
'server' => $server,
'site' => $site,
]);
}
public function destroy(Server $server, Site $site): RedirectResponse
{
$site->remove();
Toast::success('Site is being deleted');
return redirect()->route('servers.sites', $server);
}
}