Add phpstan level 7(#544)

This commit is contained in:
Saeed Vaziry
2025-03-12 13:31:10 +01:00
committed by GitHub
parent c22bb1fa80
commit 493cbb0849
437 changed files with 4505 additions and 2193 deletions

View File

@ -5,11 +5,15 @@
use App\Enums\DatabaseStatus;
use App\Models\Database;
use App\Models\Server;
use App\Models\Service;
use Illuminate\Validation\Rule;
use Illuminate\Validation\ValidationException;
class CreateDatabase
{
/**
* @param array<string, mixed> $input
*/
public function create(Server $server, array $input): Database
{
$database = new Database([
@ -18,8 +22,12 @@ public function create(Server $server, array $input): Database
'collation' => $input['collation'],
'name' => $input['name'],
]);
/** @var Service $service */
$service = $server->database();
/** @var \App\SSH\Services\Database\Database $databaseHandler */
$databaseHandler = $server->database()->handler();
$databaseHandler = $service->handler();
$databaseHandler->create($database->name, $database->charset, $database->collation);
$database->status = DatabaseStatus::READY;
$database->save();
@ -34,6 +42,9 @@ public function create(Server $server, array $input): Database
}
/**
* @param array<string, mixed> $input
* @return array<string, mixed>
*
* @throws ValidationException
*/
public static function rules(Server $server, array $input): array

View File

@ -5,6 +5,7 @@
use App\Enums\DatabaseUserStatus;
use App\Models\DatabaseUser;
use App\Models\Server;
use App\Models\Service;
use App\SSH\Services\Database\Database;
use Illuminate\Validation\Rule;
use Illuminate\Validation\ValidationException;
@ -12,6 +13,9 @@
class CreateDatabaseUser
{
/**
* @param array<string, mixed> $input
* @param array<string> $links
*
* @throws ValidationException
*/
public function create(Server $server, array $input, array $links = []): DatabaseUser
@ -23,8 +27,12 @@ public function create(Server $server, array $input, array $links = []): Databas
'host' => (isset($input['remote']) && $input['remote']) || isset($input['host']) ? $input['host'] : 'localhost',
'databases' => $links,
]);
/** @var Service $service */
$service = $server->database();
/** @var Database $databaseHandler */
$databaseHandler = $server->database()->handler();
$databaseHandler = $service->handler();
$databaseHandler->createUser(
$databaseUser->username,
$databaseUser->password,
@ -41,6 +49,9 @@ public function create(Server $server, array $input, array $links = []): Databas
}
/**
* @param array<string, mixed> $input
* @return array<string, mixed>
*
* @throws ValidationException
*/
public static function rules(Server $server, array $input): array

View File

@ -4,12 +4,17 @@
use App\Models\Database;
use App\Models\Server;
use App\Models\Service;
class DeleteDatabase
{
public function delete(Server $server, Database $database): void
{
$server->database()->handler()->delete($database->name);
/** @var Service $service */
$service = $server->database();
/** @var \App\SSH\Services\Database\Database $handler */
$handler = $service->handler();
$handler->delete($database->name);
$database->delete();
}
}

View File

@ -4,12 +4,18 @@
use App\Models\DatabaseUser;
use App\Models\Server;
use App\Models\Service;
use App\SSH\Services\Database\Database;
class DeleteDatabaseUser
{
public function delete(Server $server, DatabaseUser $databaseUser): void
{
$server->database()->handler()->deleteUser($databaseUser->username, $databaseUser->host);
/** @var Service $service */
$service = $server->database();
/** @var Database $handler */
$handler = $service->handler();
$handler->deleteUser($databaseUser->username, $databaseUser->host);
$databaseUser->delete();
}
}

View File

@ -5,12 +5,16 @@
use App\Models\Database;
use App\Models\DatabaseUser;
use App\Models\Server;
use App\Models\Service;
use Illuminate\Validation\Rule;
use Illuminate\Validation\ValidationException;
class LinkUser
{
/**
* @param array<string, mixed> $input
* @return DatabaseUser $databaseUser
*
* @throws ValidationException
*/
public function link(DatabaseUser $databaseUser, array $input): DatabaseUser
@ -29,14 +33,20 @@ public function link(DatabaseUser $databaseUser, array $input): DatabaseUser
$databaseUser->databases = $input['databases'];
/** @var Service $service */
$service = $databaseUser->server->database();
/** @var \App\SSH\Services\Database\Database $handler */
$handler = $service->handler();
// Unlink the user from all databases
$databaseUser->server->database()->handler()->unlink(
$handler->unlink(
$databaseUser->username,
$databaseUser->host
);
// Link the user to the selected databases
$databaseUser->server->database()->handler()->link(
$handler->link(
$databaseUser->username,
$databaseUser->host,
$databaseUser->databases
@ -49,6 +59,10 @@ public function link(DatabaseUser $databaseUser, array $input): DatabaseUser
return $databaseUser;
}
/**
* @param array<string, mixed> $input
* @return array<string, mixed>
*/
public static function rules(Server $server, array $input): array
{
return [

View File

@ -14,6 +14,8 @@
class ManageBackup
{
/**
* @param array<string, mixed> $input
*
* @throws AuthorizationException
* @throws ValidationException
*/
@ -35,6 +37,9 @@ public function create(Server $server, array $input): Backup
return $backup;
}
/**
* @param array<string, mixed> $input
*/
public function update(Backup $backup, array $input): void
{
$backup->interval = $input['interval'] == 'custom' ? $input['custom_interval'] : $input['interval'];
@ -47,7 +52,7 @@ public function delete(Backup $backup): void
$backup->status = BackupStatus::DELETING;
$backup->save();
dispatch(function () use ($backup) {
dispatch(function () use ($backup): void {
$files = $backup->files;
foreach ($files as $file) {
$file->status = BackupFileStatus::DELETING;
@ -60,6 +65,10 @@ public function delete(Backup $backup): void
});
}
/**
* @param array<string, mixed> $input
* @return array<string, mixed>
*/
public static function rules(Server $server, array $input): array
{
$rules = [

View File

@ -28,7 +28,7 @@ public function delete(BackupFile $file): void
$file->status = BackupFileStatus::DELETING;
$file->save();
dispatch(function () use ($file) {
dispatch(function () use ($file): void {
$file->deleteFile();
});
}

View File

@ -5,9 +5,13 @@
use App\Enums\BackupFileStatus;
use App\Models\BackupFile;
use App\Models\Database;
use App\Models\Service;
class RestoreBackup
{
/**
* @param array<string, mixed> $input
*/
public function restore(BackupFile $backupFile, array $input): void
{
/** @var Database $database */
@ -16,19 +20,24 @@ public function restore(BackupFile $backupFile, array $input): void
$backupFile->restored_to = $database->name;
$backupFile->save();
dispatch(function () use ($backupFile, $database) {
dispatch(function () use ($backupFile, $database): void {
/** @var Service $service */
$service = $database->server->database();
/** @var \App\SSH\Services\Database\Database $databaseHandler */
$databaseHandler = $database->server->database()->handler();
$databaseHandler = $service->handler();
$databaseHandler->restoreBackup($backupFile, $database->name);
$backupFile->status = BackupFileStatus::RESTORED;
$backupFile->restored_at = now();
$backupFile->save();
})->catch(function () use ($backupFile) {
})->catch(function () use ($backupFile): void {
$backupFile->status = BackupFileStatus::RESTORE_FAILED;
$backupFile->save();
})->onConnection('ssh');
}
/**
* @return array<string, array<string>>
*/
public static function rules(): array
{
return [

View File

@ -6,6 +6,7 @@
use App\Enums\BackupStatus;
use App\Models\Backup;
use App\Models\BackupFile;
use App\Models\Service;
use App\SSH\Services\Database\Database;
use Illuminate\Support\Str;
@ -20,9 +21,11 @@ public function run(Backup $backup): BackupFile
]);
$file->save();
dispatch(function () use ($file, $backup) {
dispatch(function () use ($file, $backup): void {
/** @var Service $service */
$service = $backup->server->database();
/** @var Database $databaseHandler */
$databaseHandler = $file->backup->server->database()->handler();
$databaseHandler = $service->handler();
$databaseHandler->runBackup($file);
$file->status = BackupFileStatus::CREATED;
$file->save();
@ -31,7 +34,7 @@ public function run(Backup $backup): BackupFile
$backup->status = BackupStatus::RUNNING;
$backup->save();
}
})->catch(function () use ($file, $backup) {
})->catch(function () use ($file, $backup): void {
$backup->status = BackupStatus::FAILED;
$backup->save();
$file->status = BackupFileStatus::FAILED;