refactoring

This commit is contained in:
Saeed Vaziry
2023-08-04 18:28:04 +02:00
parent 8444323cf4
commit 643318fcfc
349 changed files with 3189 additions and 2729 deletions

View File

@ -2,6 +2,7 @@
namespace App\Http;
use App\Http\Middleware\ServerIsReadyMiddleware;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel
@ -63,5 +64,6 @@ class Kernel extends HttpKernel
'signed' => \App\Http\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'server-is-ready' => ServerIsReadyMiddleware::class
];
}

View File

@ -0,0 +1,21 @@
<?php
namespace App\Http\Livewire;
use Illuminate\Contracts\View\View;
use Illuminate\Support\Facades\Cache;
use Livewire\Component;
class Broadcast extends Component
{
public function render(): View
{
$event = Cache::get('broadcast');
if ($event) {
Cache::forget('broadcast');
$this->emit('broadcast', $event);
}
return view('livewire.broadcast');
}
}

View File

@ -32,10 +32,10 @@ class DatabaseList extends Component
public function create(): void
{
app(CreateDatabase::class)->create($this->server, $this->all());
$database = app(CreateDatabase::class)->create($this->server, $this->all());
if ($this->all()['user']) {
app(CreateDatabaseUser::class)->create($this->server, $this->all());
app(CreateDatabaseUser::class)->create($this->server, $this->all(), [$database->name]);
}
$this->refreshComponent([]);
@ -45,6 +45,7 @@ public function create(): void
public function delete(): void
{
/** @var Database $database */
$database = Database::query()->findOrFail($this->deleteId);
$database->deleteFromServer();

View File

@ -43,6 +43,7 @@ public function create(): void
public function delete(): void
{
/** @var DatabaseUser $databaseUser */
$databaseUser = DatabaseUser::query()->findOrFail($this->deleteId);
$databaseUser->deleteFromServer();
@ -56,6 +57,7 @@ public function delete(): void
public function viewPassword(int $id): void
{
/** @var DatabaseUser $databaseUser */
$databaseUser = DatabaseUser::query()->findOrFail($id);
$this->viewPassword = $databaseUser->password;
@ -65,6 +67,7 @@ public function viewPassword(int $id): void
public function showLink(int $id): void
{
/** @var DatabaseUser $databaseUser */
$databaseUser = DatabaseUser::query()->findOrFail($id);
$this->linkId = $id;
@ -75,6 +78,7 @@ public function showLink(int $id): void
public function link(): void
{
/** @var DatabaseUser $databaseUser */
$databaseUser = DatabaseUser::query()->findOrFail($this->linkId);
app(LinkUser::class)->link($databaseUser, $this->link);

View File

@ -22,7 +22,7 @@ class CreateFirewallRule extends Component
public string $source = '0.0.0.0';
public string $mask = '0';
public string $mask = '';
public function create(): void
{

View File

@ -18,6 +18,7 @@ class FirewallRulesList extends Component
public function delete(): void
{
/** @var FirewallRule $rule */
$rule = FirewallRule::query()->findOrFail($this->deleteId);
$rule->removeFromServer();

View File

@ -6,7 +6,7 @@
use App\Actions\PHP\UpdatePHPIni;
use App\Models\Server;
use App\Models\Service;
use App\SSHCommands\GetPHPIniCommand;
use App\SSHCommands\PHP\GetPHPIniCommand;
use App\Traits\RefreshComponentOnBroadcast;
use Illuminate\Contracts\View\View;
use Livewire\Component;

View File

@ -0,0 +1,20 @@
<?php
namespace App\Http\Livewire\Servers;
use App\Models\Server;
use App\Traits\RefreshComponentOnBroadcast;
use Illuminate\Contracts\View\View;
use Livewire\Component;
class ServerStatus extends Component
{
use RefreshComponentOnBroadcast;
public Server $server;
public function render(): View
{
return view('livewire.servers.server-status');
}
}

View File

@ -0,0 +1,20 @@
<?php
namespace App\Http\Livewire\Sites;
use App\Models\Site;
use App\Traits\RefreshComponentOnBroadcast;
use Illuminate\Contracts\View\View;
use Livewire\Component;
class SiteStatus extends Component
{
use RefreshComponentOnBroadcast;
public Site $site;
public function render(): View
{
return view('livewire.sites.site-status');
}
}

View File

@ -11,8 +11,12 @@ class Bitbucket extends Component
{
public string $token;
public ?string $url;
public function mount(): void
{
$this->url = request()->input('redirect') ?? null;
$this->token = SourceControl::query()
->where('provider', \App\Enums\SourceControl::BITBUCKET)
->first()?->access_token ?? '';
@ -23,6 +27,10 @@ public function connect(): void
app(ConnectSourceControl::class)->connect(\App\Enums\SourceControl::BITBUCKET, $this->all());
session()->flash('status', 'bitbucket-updated');
if ($this->url) {
$this->redirect($this->url);
}
}
public function render(): View

View File

@ -0,0 +1,38 @@
<?php
namespace App\Http\Livewire\SourceControls;
use App\Actions\SourceControl\ConnectSourceControl;
use Illuminate\Contracts\View\View;
use Livewire\Component;
class Connect extends Component
{
public string $provider = '';
public string $name;
public string $token;
public string $url;
public function connect(): void
{
app(ConnectSourceControl::class)->connect($this->all());
$this->emitTo(SourceControlsList::class, '$refresh');
$this->dispatchBrowserEvent('connected', true);
}
public function render(): View
{
if (request()->query('provider')) {
$this->provider = request()->query('provider');
}
return view('livewire.source-controls.connect', [
'open' => ! is_null(request()->query('provider')),
]);
}
}

View File

@ -11,8 +11,12 @@ class Github extends Component
{
public string $token;
public ?string $url;
public function mount(): void
{
$this->url = request()->input('redirect') ?? null;
$this->token = SourceControl::query()
->where('provider', \App\Enums\SourceControl::GITHUB)
->first()?->access_token ?? '';
@ -20,9 +24,13 @@ public function mount(): void
public function connect(): void
{
app(ConnectSourceControl::class)->connect(\App\Enums\SourceControl::GITHUB, $this->all());
app(ConnectSourceControl::class)->connect(\App\Enums\SourceControl::GITHUB, array_merge($this->all()));
session()->flash('status', 'github-updated');
if ($this->url) {
$this->redirect($this->url);
}
}
public function render(): View

View File

@ -11,8 +11,12 @@ class Gitlab extends Component
{
public string $token;
public ?string $url;
public function mount(): void
{
$this->url = request()->input('redirect') ?? null;
$this->token = SourceControl::query()
->where('provider', \App\Enums\SourceControl::GITLAB)
->first()?->access_token ?? '';
@ -23,6 +27,10 @@ public function connect(): void
app(ConnectSourceControl::class)->connect(\App\Enums\SourceControl::GITLAB, $this->all());
session()->flash('status', 'gitlab-updated');
if ($this->url) {
$this->redirect($this->url);
}
}
public function render(): View

View File

@ -0,0 +1,37 @@
<?php
namespace App\Http\Livewire\SourceControls;
use App\Models\SourceControl;
use App\Traits\RefreshComponentOnBroadcast;
use Illuminate\Contracts\View\View;
use Livewire\Component;
class SourceControlsList extends Component
{
use RefreshComponentOnBroadcast;
public int $deleteId;
protected $listeners = [
'$refresh',
];
public function delete(): void
{
$provider = SourceControl::query()->findOrFail($this->deleteId);
$provider->delete();
$this->refreshComponent([]);
$this->dispatchBrowserEvent('confirmed', true);
}
public function render(): View
{
return view('livewire.source-controls.source-controls-list', [
'sourceControls' => SourceControl::query()->latest()->get(),
]);
}
}

View File

@ -0,0 +1,22 @@
<?php
namespace App\Http\Middleware;
use App\Models\Server;
use Closure;
use Illuminate\Http\Request;
class ServerIsReadyMiddleware
{
public function handle(Request $request, Closure $next)
{
/** @var Server $server */
$server = $request->route('server');
if (! $server->isReady()) {
return redirect()->route('servers.show', ['server' => $server]);
}
return $next($request);
}
}