mirror of
https://github.com/vitodeploy/vito.git
synced 2025-04-20 02:11:36 +00:00
104 lines
2.3 KiB
PHP
104 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Actions\Service\Install;
|
|
use App\Actions\Service\Uninstall;
|
|
use App\Facades\Toast;
|
|
use App\Helpers\HtmxResponse;
|
|
use App\Models\Server;
|
|
use App\Models\Service;
|
|
use Illuminate\Contracts\View\View;
|
|
use Illuminate\Http\RedirectResponse;
|
|
use Illuminate\Http\Request;
|
|
|
|
class ServiceController extends Controller
|
|
{
|
|
public function index(Server $server): View
|
|
{
|
|
$this->authorize('manage', $server);
|
|
|
|
return view('services.index', [
|
|
'server' => $server,
|
|
'services' => $server->services,
|
|
]);
|
|
}
|
|
|
|
public function start(Server $server, Service $service): RedirectResponse
|
|
{
|
|
$this->authorize('manage', $server);
|
|
|
|
$service->start();
|
|
|
|
Toast::success('Service is being started!');
|
|
|
|
return back();
|
|
}
|
|
|
|
public function stop(Server $server, Service $service): RedirectResponse
|
|
{
|
|
$this->authorize('manage', $server);
|
|
|
|
$service->stop();
|
|
|
|
Toast::success('Service is being stopped!');
|
|
|
|
return back();
|
|
}
|
|
|
|
public function restart(Server $server, Service $service): RedirectResponse
|
|
{
|
|
$this->authorize('manage', $server);
|
|
|
|
$service->restart();
|
|
|
|
Toast::success('Service is being restarted!');
|
|
|
|
return back();
|
|
}
|
|
|
|
public function enable(Server $server, Service $service): RedirectResponse
|
|
{
|
|
$this->authorize('manage', $server);
|
|
|
|
$service->enable();
|
|
|
|
Toast::success('Service is being enabled!');
|
|
|
|
return back();
|
|
}
|
|
|
|
public function disable(Server $server, Service $service): RedirectResponse
|
|
{
|
|
$this->authorize('manage', $server);
|
|
|
|
$service->disable();
|
|
|
|
Toast::success('Service is being disabled!');
|
|
|
|
return back();
|
|
}
|
|
|
|
public function install(Server $server, Request $request): HtmxResponse
|
|
{
|
|
$this->authorize('manage', $server);
|
|
|
|
app(Install::class)->install($server, $request->input());
|
|
|
|
Toast::success('Service is being installed!');
|
|
|
|
return htmx()->back();
|
|
}
|
|
|
|
public function uninstall(Server $server, Service $service): HtmxResponse
|
|
{
|
|
$this->authorize('manage', $server);
|
|
|
|
app(Uninstall::class)->uninstall($service);
|
|
|
|
Toast::success('Service is being uninstalled!');
|
|
|
|
return htmx()->back();
|
|
}
|
|
}
|