vito/app/Http/Controllers/SiteSettingController.php
Saeed Vaziry a406491160
increase test coverage (#117)
70% test coverage
remove socialite
2024-03-15 22:23:45 +01:00

67 lines
1.7 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Facades\Toast;
use App\Helpers\HtmxResponse;
use App\Models\Server;
use App\Models\Site;
use Illuminate\Contracts\View\View;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Validation\Rule;
use Throwable;
class SiteSettingController extends Controller
{
public function index(Server $server, Site $site): View
{
return view('site-settings.index', [
'server' => $server,
'site' => $site,
]);
}
public function getVhost(Server $server, Site $site): RedirectResponse
{
return back()->with('vhost', $server->webserver()->handler()->getVHost($site));
}
public function updateVhost(Server $server, Site $site, Request $request): RedirectResponse
{
$this->validate($request, [
'vhost' => 'required|string',
]);
try {
$server->webserver()->handler()->updateVHost($site, false, $request->input('vhost'));
Toast::success('VHost updated successfully!');
} catch (Throwable $e) {
Toast::error($e->getMessage());
}
return back();
}
public function updatePHPVersion(Server $server, Site $site, Request $request): HtmxResponse
{
$this->validate($request, [
'version' => [
'required',
Rule::exists('services', 'version')->where('type', 'php'),
],
]);
try {
$site->changePHPVersion($request->input('version'));
Toast::success('PHP version updated successfully!');
} catch (Throwable $e) {
Toast::error($e->getMessage());
}
return htmx()->back();
}
}