From 45afe7325251ed88bcd7595ad622c2be1fac2c25 Mon Sep 17 00:00:00 2001 From: dogukanoksuz Date: Thu, 17 Oct 2024 17:15:02 +0300 Subject: [PATCH] refactor: Simplify conditionals in ExtensionController and Helpers.php Simplified the conditionals in ExtensionController and Helpers.php to use boolean values instead of string comparisons. This improves readability and maintainability of the code. --- .../Controllers/API/ExtensionController.php | 8 +--- .../API/Settings/ExtensionController.php | 19 ++------- .../Controllers/HASync/MainController.php | 2 +- app/Http/Helpers.php | 2 +- app/Jobs/HighAvailabilitySyncer.php | 4 +- app/Models/Extension.php | 9 +--- app/Models/UserSettings.php | 2 + ...24_10_17_150509_alter_table_extensions.php | 42 +++++++++++++++++++ ...ersion_code_column_on_table_extensions.php | 32 ++++++++++++++ 9 files changed, 87 insertions(+), 33 deletions(-) create mode 100644 database/migrations/2024_10_17_150509_alter_table_extensions.php create mode 100644 database/migrations/2024_10_17_153851_fill_version_code_column_on_table_extensions.php diff --git a/app/Http/Controllers/API/ExtensionController.php b/app/Http/Controllers/API/ExtensionController.php index fb3791d5..bc2eaeb8 100644 --- a/app/Http/Controllers/API/ExtensionController.php +++ b/app/Http/Controllers/API/ExtensionController.php @@ -150,13 +150,7 @@ public function render(Request $request) $this->checkPermissions(extension()); $this->checkForMissingSettings($dbJson); - if (extension()->status == '0') { - return response()->json([ - 'message' => 'Eklenti şu anda güncelleniyor, biraz sonra tekrar deneyiniz.', - ], Response::HTTP_SERVICE_UNAVAILABLE); - } - - if (extension()->require_key == 'true' && server()->key() == null) { + if (extension()->require_key == true && server()->key() == null) { return response()->json([ 'message' => 'Bu eklentiyi kullanabilmek için bir anahtara ihtiyacınız var, lütfen kasa üzerinden bir anahtar ekleyin.', ], Response::HTTP_FORBIDDEN); diff --git a/app/Http/Controllers/API/Settings/ExtensionController.php b/app/Http/Controllers/API/Settings/ExtensionController.php index 589273bb..7d8f6cd6 100644 --- a/app/Http/Controllers/API/Settings/ExtensionController.php +++ b/app/Http/Controllers/API/Settings/ExtensionController.php @@ -102,10 +102,9 @@ public function upload() (string) request()->file('extension')->path() ); } - $list = $this->setupNewExtension($zipFile, $verify); - $error = $list[0]; - $new = $list[1]; - $old = $list[2] ?? []; + + list($error, $new, $old) = $this->setupNewExtension($zipFile); + $old = $old ?? []; if ($error) { return $error; @@ -284,7 +283,7 @@ public function download() * * @throws GuzzleException */ - private function setupNewExtension($zipFile, $verify = false) + private function setupNewExtension($zipFile) { // Initialize Zip Archive Object to use it later. $zip = new ZipArchive(); @@ -339,12 +338,6 @@ private function setupNewExtension($zipFile, $verify = false) ]; } - if ($verify) { - $json['issuer'] = explode(' ', (string) $verify, 4)[3]; - } else { - $json['issuer'] = ''; - } - // Check If Extension Already Exists. $extension = Extension::where('name', $json['name'])->first(); if ($extension) { @@ -369,12 +362,8 @@ private function setupNewExtension($zipFile, $verify = false) } else { $new = new Extension(); } - unset($json['issuer']); - unset($json['status']); - unset($json['order']); $json['display_name'] = json_encode($json['display_name']); $new->fill($json); - $new->status = '1'; $new->save(); if (array_key_exists('dependencies', $json) && $json['dependencies'] != '') { diff --git a/app/Http/Controllers/HASync/MainController.php b/app/Http/Controllers/HASync/MainController.php index 93cd5d82..161ed243 100644 --- a/app/Http/Controllers/HASync/MainController.php +++ b/app/Http/Controllers/HASync/MainController.php @@ -34,7 +34,7 @@ public function extensionList() $list[] = [ "id" => $extension->id, "name" => strtolower($extension->name), - "version_code" => (int) str_replace('.', '', $extension->version), + "version_code" => intval($extension->version_code), "download_path" => route("ha_download_ext", [ "extension_name" => $extension->name ]), diff --git a/app/Http/Helpers.php b/app/Http/Helpers.php index e667abd8..96ecc8f0 100755 --- a/app/Http/Helpers.php +++ b/app/Http/Helpers.php @@ -794,7 +794,7 @@ function callExtensionFunction( $params = [], $target_function = "apiProxy" ) { - if ($extension->require_key == 'true' && $server->key() == null) { + if ($extension->require_key == true && $server->key() == null) { return null; } diff --git a/app/Jobs/HighAvailabilitySyncer.php b/app/Jobs/HighAvailabilitySyncer.php index 6dfbf8f4..cd2fb722 100644 --- a/app/Jobs/HighAvailabilitySyncer.php +++ b/app/Jobs/HighAvailabilitySyncer.php @@ -144,9 +144,9 @@ private function fetchUpdateInformation($ip) if (is_file($path . '/db.json')) { $json = (array) json_decode(file_get_contents($path . '/db.json')); - $version = (int) str_replace('.', '', $json['version']); + $version = $json['version_code']; - if ($version < $extension->version_code) { + if (intval($version) < intval($extension->version_code)) { $needsToBeUpdated[] = $extension; continue; } diff --git a/app/Models/Extension.php b/app/Models/Extension.php index af50021d..2a902b69 100644 --- a/app/Models/Extension.php +++ b/app/Models/Extension.php @@ -24,21 +24,16 @@ class Extension extends Model 'display_name', 'name', 'version', + 'version_code', 'icon', - 'service', 'sslPorts', - 'issuer', - 'language', - 'support', - 'displays', 'require_key', - 'status', 'license_type', 'ldap_support', ]; protected $casts = [ - 'displays' => 'array', + 'require_key' => 'boolean', ]; /** diff --git a/app/Models/UserSettings.php b/app/Models/UserSettings.php index 33a9e087..a12dae8d 100644 --- a/app/Models/UserSettings.php +++ b/app/Models/UserSettings.php @@ -14,4 +14,6 @@ class UserSettings extends Model use UsesUuid; protected $fillable = ['server_id', 'user_id', 'name', 'value']; + + protected $hidden = ['value']; } diff --git a/database/migrations/2024_10_17_150509_alter_table_extensions.php b/database/migrations/2024_10_17_150509_alter_table_extensions.php new file mode 100644 index 00000000..737e80b1 --- /dev/null +++ b/database/migrations/2024_10_17_150509_alter_table_extensions.php @@ -0,0 +1,42 @@ +dropColumn('status'); + $table->dropColumn('displays'); + $table->dropColumn('support'); + $table->dropColumn('language'); + $table->dropColumn('issuer'); + $table->dropColumn('service'); + $table->dropColumn('order'); + // require_key defaults to false + // first convert existing data to boolean + DB::statement("ALTER TABLE extensions + ALTER COLUMN require_key DROP DEFAULT, + ALTER COLUMN require_key TYPE BOOLEAN USING require_key::BOOLEAN, + ALTER COLUMN require_key SET DEFAULT FALSE;"); + // add version_code column + $table->string('version_code')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + // + } +}; diff --git a/database/migrations/2024_10_17_153851_fill_version_code_column_on_table_extensions.php b/database/migrations/2024_10_17_153851_fill_version_code_column_on_table_extensions.php new file mode 100644 index 00000000..e0278f57 --- /dev/null +++ b/database/migrations/2024_10_17_153851_fill_version_code_column_on_table_extensions.php @@ -0,0 +1,32 @@ +name); + if (!$extJson) { + continue; + } + $extension->version_code = $extJson['version_code']; + $extension->save(); + } + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + // + } +};