mirror of
https://github.com/vitodeploy/vito.git
synced 2025-07-01 14:06:15 +00:00
Migrate to HTMX (#114)
Dropped Livewire Added HTMX Added Blade code lint Drop Mysql and Redis Migrate to SQLite
This commit is contained in:
104
app/Http/Controllers/ApplicationController.php
Normal file
104
app/Http/Controllers/ApplicationController.php
Normal file
@ -0,0 +1,104 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Actions\Site\UpdateBranch;
|
||||
use App\Actions\Site\UpdateDeploymentScript;
|
||||
use App\Actions\Site\UpdateEnv;
|
||||
use App\Exceptions\SourceControlIsNotConnected;
|
||||
use App\Facades\Toast;
|
||||
use App\Helpers\HtmxResponse;
|
||||
use App\Models\Deployment;
|
||||
use App\Models\Server;
|
||||
use App\Models\Site;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ApplicationController extends Controller
|
||||
{
|
||||
public function deploy(Server $server, Site $site): HtmxResponse
|
||||
{
|
||||
try {
|
||||
$site->deploy();
|
||||
|
||||
Toast::success('Deployment started!');
|
||||
} catch (SourceControlIsNotConnected $e) {
|
||||
Toast::error($e->getMessage());
|
||||
|
||||
return htmx()->redirect(route('source-controls'));
|
||||
}
|
||||
|
||||
return htmx()->back();
|
||||
}
|
||||
|
||||
public function showDeploymentLog(Server $server, Site $site, Deployment $deployment): RedirectResponse
|
||||
{
|
||||
return back()->with('content', $deployment->log->content);
|
||||
}
|
||||
|
||||
public function updateDeploymentScript(Server $server, Site $site, Request $request): RedirectResponse
|
||||
{
|
||||
app(UpdateDeploymentScript::class)->update($site, $request->input());
|
||||
|
||||
Toast::success('Deployment script updated!');
|
||||
|
||||
return back();
|
||||
}
|
||||
|
||||
public function updateBranch(Server $server, Site $site, Request $request): RedirectResponse
|
||||
{
|
||||
app(UpdateBranch::class)->update($site, $request->input());
|
||||
|
||||
Toast::success('Branch updated!');
|
||||
|
||||
return back();
|
||||
}
|
||||
|
||||
public function getEnv(Server $server, Site $site): RedirectResponse
|
||||
{
|
||||
return back()->with('env', $site->getEnv());
|
||||
}
|
||||
|
||||
public function updateEnv(Server $server, Site $site, Request $request): RedirectResponse
|
||||
{
|
||||
app(UpdateEnv::class)->update($site, $request->input());
|
||||
|
||||
Toast::success('Env updated!');
|
||||
|
||||
return back();
|
||||
}
|
||||
|
||||
public function enableAutoDeployment(Server $server, Site $site): RedirectResponse
|
||||
{
|
||||
if (! $site->auto_deployment) {
|
||||
try {
|
||||
$site->enableAutoDeployment();
|
||||
|
||||
$site->refresh();
|
||||
|
||||
Toast::success('Auto deployment has been enabled.');
|
||||
} catch (SourceControlIsNotConnected) {
|
||||
Toast::error('Source control is not connected. Check site\'s settings.');
|
||||
}
|
||||
}
|
||||
|
||||
return back();
|
||||
}
|
||||
|
||||
public function disableAutoDeployment(Server $server, Site $site): RedirectResponse
|
||||
{
|
||||
if ($site->auto_deployment) {
|
||||
try {
|
||||
$site->disableAutoDeployment();
|
||||
|
||||
$site->refresh();
|
||||
|
||||
Toast::success('Auto deployment has been disabled.');
|
||||
} catch (SourceControlIsNotConnected) {
|
||||
Toast::error('Source control is not connected. Check site\'s settings.');
|
||||
}
|
||||
}
|
||||
|
||||
return back();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user