mirror of
https://github.com/vitodeploy/vito.git
synced 2025-07-01 05:56:16 +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:
79
app/Http/Controllers/DatabaseBackupController.php
Normal file
79
app/Http/Controllers/DatabaseBackupController.php
Normal file
@ -0,0 +1,79 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Actions\Database\CreateBackup;
|
||||
use App\Facades\Toast;
|
||||
use App\Helpers\HtmxResponse;
|
||||
use App\Models\Backup;
|
||||
use App\Models\BackupFile;
|
||||
use App\Models\Database;
|
||||
use App\Models\Server;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class DatabaseBackupController extends Controller
|
||||
{
|
||||
public function show(Server $server, Backup $backup): View
|
||||
{
|
||||
return view('databases.backups', [
|
||||
'server' => $server,
|
||||
'databases' => $server->databases,
|
||||
'backup' => $backup,
|
||||
'files' => $backup->files()->orderByDesc('id')->simplePaginate(10),
|
||||
]);
|
||||
}
|
||||
|
||||
public function run(Server $server, Backup $backup): RedirectResponse
|
||||
{
|
||||
$backup->run();
|
||||
|
||||
Toast::success('Backup is running.');
|
||||
|
||||
return back();
|
||||
}
|
||||
|
||||
public function store(Server $server, Request $request): HtmxResponse
|
||||
{
|
||||
app(CreateBackup::class)->create('database', $server, $request->input());
|
||||
|
||||
Toast::success('Backup created successfully.');
|
||||
|
||||
return htmx()->back();
|
||||
}
|
||||
|
||||
public function destroy(Server $server, Backup $backup): RedirectResponse
|
||||
{
|
||||
$backup->delete();
|
||||
|
||||
Toast::success('Backup deleted successfully.');
|
||||
|
||||
return back();
|
||||
}
|
||||
|
||||
public function restore(Server $server, Backup $backup, BackupFile $backupFile, Request $request): HtmxResponse
|
||||
{
|
||||
$this->validate($request, [
|
||||
'database' => 'required|exists:databases,id',
|
||||
]);
|
||||
|
||||
/** @var Database $database */
|
||||
$database = Database::query()->findOrFail($request->input('database'));
|
||||
|
||||
$backupFile->restore($database);
|
||||
|
||||
Toast::success('Backup restored successfully.');
|
||||
|
||||
return htmx()->back();
|
||||
}
|
||||
|
||||
public function destroyFile(Server $server, Backup $backup, BackupFile $backupFile): RedirectResponse
|
||||
{
|
||||
$backupFile->delete();
|
||||
|
||||
Toast::success('Backup file deleted successfully.');
|
||||
|
||||
return back();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user