From 27b858ab6da26b656d7b8f26e39c6d157d989347 Mon Sep 17 00:00:00 2001 From: dena Date: Fri, 21 Nov 2025 18:45:01 +0100 Subject: [PATCH 1/9] introduce Helper --- app/Helper/WikiDbVersionHelper.php | 61 +++++++++++++++++++++ app/Services/MediaWikiHostResolver.php | 21 +++---- tests/Helper/WikiDbVersionHelperTest.php | 36 ++++++++++++ tests/Routes/Backend/WikiControllerTest.php | 57 +++++++++++++++++++ 4 files changed, 162 insertions(+), 13 deletions(-) create mode 100644 app/Helper/WikiDbVersionHelper.php create mode 100644 tests/Helper/WikiDbVersionHelperTest.php create mode 100644 tests/Routes/Backend/WikiControllerTest.php diff --git a/app/Helper/WikiDbVersionHelper.php b/app/Helper/WikiDbVersionHelper.php new file mode 100644 index 000000000..2614ab4c6 --- /dev/null +++ b/app/Helper/WikiDbVersionHelper.php @@ -0,0 +1,61 @@ + dbVersion lives. + */ + +namespace App\Helper; + +/** + * Exception thrown when a database version is not mapped in WikiDbVersionHelper. + */ +class UnknownDbVersionException extends \Exception {} + +/** + * Exception thrown when a mediawiki version is not mapped in WikiDbVersionHelper. + */ +class UnknownMwVersionException extends \Exception {} + +class WikiDbVersionHelper { + /** @var array Map of DB version strings to MediaWiki version strings */ + private const DB_VERSION_TO_MW_VERSION = [ + 'mw1.39-wbs1' => '139', + 'mw1.43-wbs1' => '143', + ]; + + static public function isValidDbVersion(string $dbVersionString): bool { + return array_key_exists( + $dbVersionString, + self::DB_VERSION_TO_MW_VERSION + ); + } + + static public function isValidMwVersion(string $mwVersionString): bool { + return array_key_exists( + $mwVersionString, + array_flip(self::DB_VERSION_TO_MW_VERSION) + ); + } + + /** + * @throws UnknownMwVersionException + */ + static public function getDbVersion(string $mwVersionString): string { + if (self::isValidMwVersion($mwVersionString)) { + return array_flip(self::DB_VERSION_TO_MW_VERSION)[$mwVersionString]; + } + + throw new UnknownMwVersionException("Unknown MediaWiki version string: '{$mwVersionString}'"); + } + + /** + * @throws UnknownDbVersionException + */ + static public function getMwVersion(string $dbVersionString): string { + if (self::isValidDbVersion($dbVersionString)) { + return self::DB_VERSION_TO_MW_VERSION[$dbVersionString]; + } + + throw new UnknownDbVersionException("Unknown database version string: '{$dbVersionString}'"); + } +} diff --git a/app/Services/MediaWikiHostResolver.php b/app/Services/MediaWikiHostResolver.php index a07e6f9a4..700a285b5 100644 --- a/app/Services/MediaWikiHostResolver.php +++ b/app/Services/MediaWikiHostResolver.php @@ -3,6 +3,8 @@ namespace App\Services; use App\Wiki; +use App\Helper; +use App\Helper\WikiDbVersionHelper; use Exception; /** @@ -16,17 +18,6 @@ class UnknownDBVersionException extends Exception {} class UnknownWikiDomainException extends Exception {} class MediaWikiHostResolver { - // TODO: Move this mapping to a config file so that MW updates do not require code changes here. - /** @var array Map of DB version strings to MediaWiki version strings */ - private const DB_VERSION_TO_MW_VERSION = [ - 'mw1.39-wbs1' => '139', - 'mw1.43-wbs1' => '143', - ]; - - /** - * @throws UnknownDBVersionException - * @throws UnknownWikiDomainException - */ public function getHostsForDomain(string $domain): array { $mwVersionForDomain = $this->getMwVersionForDomain($domain); @@ -44,6 +35,10 @@ public function getBackendHostForDomain(string $domain): string { return sprintf('mediawiki-%s-app-backend.default.svc.cluster.local', $this->getMwVersionForDomain($domain)); } + /** + * @throws UnknownDBVersionException + * @throws UnknownWikiDomainException + */ private function getMwVersionForDomain(string $domain): string { $wiki = Wiki::where('domain', $domain)->first(); @@ -53,8 +48,8 @@ private function getMwVersionForDomain(string $domain): string { $dbVersion = $wiki->wikiDb->version; - if (array_key_exists($dbVersion, self::DB_VERSION_TO_MW_VERSION)) { - return self::DB_VERSION_TO_MW_VERSION[$dbVersion]; + if (WikiDbVersionHelper::isValidDbVersion($dbVersion)) { + return WikiDbVersionHelper::getMwVersion($dbVersion); } throw new UnknownDBVersionException("Unknown DB version '{$dbVersion}' for domain '{$domain}'."); } diff --git a/tests/Helper/WikiDbVersionHelperTest.php b/tests/Helper/WikiDbVersionHelperTest.php new file mode 100644 index 000000000..44962b1ff --- /dev/null +++ b/tests/Helper/WikiDbVersionHelperTest.php @@ -0,0 +1,36 @@ +expectException(UnknownDbVersionException::class); + + WikiDbVersionHelper::getMwVersion('invalidDbVersion'); + } + + public function testUnknownMwVersion() { + $this->expectException(UnknownMwVersionException::class); + + WikiDbVersionHelper::getDbVersion('invalidMwVersion'); + } + + public function testKnownDbVersion() { + $this->assertSame( + WikiDbVersionHelper::getDbVersion('143'), + 'mw1.43-wbs1' + ); + } + + public function testKnownMwVersion() { + $this->assertSame( + WikiDbVersionHelper::getMwVersion('mw1.39-wbs1'), + '139' + ); + } +} diff --git a/tests/Routes/Backend/WikiControllerTest.php b/tests/Routes/Backend/WikiControllerTest.php new file mode 100644 index 000000000..6cdcbc462 --- /dev/null +++ b/tests/Routes/Backend/WikiControllerTest.php @@ -0,0 +1,57 @@ +createWiki($wikiDomain, $targetDbVersion); + + $this->patchJson("{$this->route}?domain={$wikiDomain}&dbVersion={$targetDbVersion}") + ->assertStatus(200) + ->assertJson([ + 'result' => 'success', + ]); + } + + public function testDomainNotfound() { + $targetDbVersion = 'mw1.43-wbs1'; + $wikiDomain = 'notFound.wikibase.cloud'; + + $this->patchJson("{$this->route}?domain={$wikiDomain}&dbVersion={$targetDbVersion}") + ->assertStatus(404); + } + + public function testUnknownDbVersion() { + $targetDbVersion = 'unknownVersion'; + $wikiDomain = 'coffeebase.wikibase.cloud'; + + $this->createWiki($wikiDomain, $targetDbVersion); + + $this->patchJson("{$this->route}?domain={$wikiDomain}&dbVersion={$targetDbVersion}") + ->assertStatus(500); + } + + private function createWiki(string $domain, string $version) { + $wiki = Wiki::factory()->create(['domain' => $domain]); + WikiDb::create([ + 'name' => $domain, + 'user' => 'someUser', + 'password' => 'somePassword', + 'version' => $version, + 'prefix' => 'somePrefix', + 'wiki_id' => $wiki->id, + ]); + } +} From cec031c48f6b77669c652eef1d514cc5f28dac5b Mon Sep 17 00:00:00 2001 From: dena Date: Fri, 21 Nov 2025 19:30:18 +0100 Subject: [PATCH 2/9] add route config --- routes/backend.php | 1 + 1 file changed, 1 insertion(+) diff --git a/routes/backend.php b/routes/backend.php index 478a40367..3f6300b5b 100644 --- a/routes/backend.php +++ b/routes/backend.php @@ -21,6 +21,7 @@ $router->get('getWikiForDomain', ['uses' => 'WikiController@getWikiForDomain']); // PATCH $router->patch('updateEntityImport', ['uses' => '\App\Http\Controllers\WikiEntityImportController@update']); + $router->patch('setDbVersion', ['uses' => 'WikiController@setWikiDbVersionForDomain']); }); $router->group(['prefix' => 'event'], function () use ($router) { From 0904495e21363580c7baea03114b3220858e9610 Mon Sep 17 00:00:00 2001 From: dena Date: Fri, 21 Nov 2025 19:30:48 +0100 Subject: [PATCH 3/9] formatting --- app/Helper/WikiDbVersionHelper.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/Helper/WikiDbVersionHelper.php b/app/Helper/WikiDbVersionHelper.php index 2614ab4c6..8419ac46b 100644 --- a/app/Helper/WikiDbVersionHelper.php +++ b/app/Helper/WikiDbVersionHelper.php @@ -23,14 +23,14 @@ class WikiDbVersionHelper { 'mw1.43-wbs1' => '143', ]; - static public function isValidDbVersion(string $dbVersionString): bool { + public static function isValidDbVersion(string $dbVersionString): bool { return array_key_exists( $dbVersionString, self::DB_VERSION_TO_MW_VERSION ); } - static public function isValidMwVersion(string $mwVersionString): bool { + public static function isValidMwVersion(string $mwVersionString): bool { return array_key_exists( $mwVersionString, array_flip(self::DB_VERSION_TO_MW_VERSION) @@ -40,22 +40,22 @@ static public function isValidMwVersion(string $mwVersionString): bool { /** * @throws UnknownMwVersionException */ - static public function getDbVersion(string $mwVersionString): string { + public static function getDbVersion(string $mwVersionString): string { if (self::isValidMwVersion($mwVersionString)) { return array_flip(self::DB_VERSION_TO_MW_VERSION)[$mwVersionString]; } - + throw new UnknownMwVersionException("Unknown MediaWiki version string: '{$mwVersionString}'"); } /** * @throws UnknownDbVersionException */ - static public function getMwVersion(string $dbVersionString): string { + public static function getMwVersion(string $dbVersionString): string { if (self::isValidDbVersion($dbVersionString)) { return self::DB_VERSION_TO_MW_VERSION[$dbVersionString]; } - + throw new UnknownDbVersionException("Unknown database version string: '{$dbVersionString}'"); } } From e36c7e7e115e0747a5b830cfc5f5023b5fcb897f Mon Sep 17 00:00:00 2001 From: dena Date: Fri, 21 Nov 2025 19:31:54 +0100 Subject: [PATCH 4/9] code --- .../Controllers/Backend/WikiController.php | 48 ++++++++--- app/Services/MediaWikiHostResolver.php | 3 +- tests/Helper/WikiDbVersionHelperTest.php | 4 +- tests/Routes/Backend/WikiControllerTest.php | 79 +++++++++++++------ 4 files changed, 98 insertions(+), 36 deletions(-) diff --git a/app/Http/Controllers/Backend/WikiController.php b/app/Http/Controllers/Backend/WikiController.php index 8fccf7781..4a9b2e557 100644 --- a/app/Http/Controllers/Backend/WikiController.php +++ b/app/Http/Controllers/Backend/WikiController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers\Backend; +use App\Helper\WikiDbVersionHelper; use App\Http\Controllers\Controller; use App\Wiki; use Illuminate\Http\Request; @@ -10,19 +11,17 @@ class WikiController extends Controller { private static $with = ['wikiDb', 'wikiQueryserviceNamespace', 'settings']; public function getWikiForDomain(Request $request): \Illuminate\Http\JsonResponse { - $domain = $request->input('domain'); + $validated = $request->validate([ + 'domain' => 'required|string', + ]); + + $domain = $validated['domain']; // XXX: this same logic is in quickstatements.php and platform api WikiController backend try { - if ($domain === 'localhost' || $domain === 'mediawiki') { - // If just using localhost then just get the first undeleted wiki - $result = Wiki::with(self::$with)->first(); - } else { - // TODO don't select the timestamps and redundant info for the settings? - $result = Wiki::where('domain', $domain)->with(self::$with)->first(); - } - } catch (\Exception $ex) { - return response()->json($ex->getMessage(), 500); + $result = Wiki::with(['wikiDb', 'wikiQueryserviceNamespace', 'settings'])->firstWhere('domain', $domain); + } catch (\Exception $e) { + return response()->json($e->getMessage(), 500); } if (!$result) { @@ -31,4 +30,33 @@ public function getWikiForDomain(Request $request): \Illuminate\Http\JsonRespons return response()->json(['data' => $result], 200); } + + public function setWikiDbVersionForDomain(Request $request): \Illuminate\Http\JsonResponse { + $validated = $request->validate([ + 'domain' => 'required|string', + 'dbVersion' => 'required|string', + ]); + + $domain = $validated['domain']; + $targetDbVersion = $validated['dbVersion']; + + try { + $wiki = Wiki::with('wikiDb')->firstWhere('domain', $domain); + + if (!$wiki) { + return response()->json(['error' => "No wiki found with domain: '{$domain}'"], 404); + } + + if (!WikiDbVersionHelper::isValidDbVersion($targetDbVersion)) { + return response()->json(['error' => "Unknown database version string: '{$targetDbVersion}'"], 400); + } + + $wiki->wikiDb->version = $targetDbVersion; + $wiki->wikiDb->save(); + } catch (\Exception $e) { + return response()->json($e->getMessage(), 500); + } + + return response()->json(['result' => 'success'], 200); + } } diff --git a/app/Services/MediaWikiHostResolver.php b/app/Services/MediaWikiHostResolver.php index 700a285b5..21fc8884b 100644 --- a/app/Services/MediaWikiHostResolver.php +++ b/app/Services/MediaWikiHostResolver.php @@ -2,9 +2,8 @@ namespace App\Services; -use App\Wiki; -use App\Helper; use App\Helper\WikiDbVersionHelper; +use App\Wiki; use Exception; /** diff --git a/tests/Helper/WikiDbVersionHelperTest.php b/tests/Helper/WikiDbVersionHelperTest.php index 44962b1ff..4b5a61c37 100644 --- a/tests/Helper/WikiDbVersionHelperTest.php +++ b/tests/Helper/WikiDbVersionHelperTest.php @@ -2,9 +2,9 @@ namespace Tests\Jobs; -use App\Helper\WikiDbVersionHelper; -use App\Helper\UnknownMwVersionException; use App\Helper\UnknownDbVersionException; +use App\Helper\UnknownMwVersionException; +use App\Helper\WikiDbVersionHelper; use Tests\TestCase; class WikiDbVersionHelperTest extends TestCase { diff --git a/tests/Routes/Backend/WikiControllerTest.php b/tests/Routes/Backend/WikiControllerTest.php index 6cdcbc462..071fc3a16 100644 --- a/tests/Routes/Backend/WikiControllerTest.php +++ b/tests/Routes/Backend/WikiControllerTest.php @@ -10,48 +10,83 @@ class WikiControllerTest extends TestCase { use RefreshDatabase; - protected $route = '/backend/wiki/setDbVersion'; + const VALID_WIKI_DB_VERSION_STRING_139 = 'mw1.39-wbs1'; - public function testSuccess() { - $targetDbVersion = 'mw1.43-wbs1'; + const VALID_WIKI_DB_VERSION_STRING_143 = 'mw1.43-wbs1'; + + protected $routeSetDbVersion = '/backend/wiki/setDbVersion'; + + protected $routeGetWikiForDomain = '/backend/wiki/getWikiForDomain'; + + private function createWiki(string $domain, string $version) { + $wiki = Wiki::factory()->create(['domain' => $domain]); + WikiDb::create([ + 'name' => $domain, + 'user' => 'someUser', + 'password' => 'somePassword', + 'version' => $version, + 'prefix' => 'somePrefix', + 'wiki_id' => $wiki->id, + ]); + } + + public function testSetWikiDbVersionForDomainSuccess() { + $targetDbVersion = self::VALID_WIKI_DB_VERSION_STRING_143; $wikiDomain = 'coffeebase.wikibase.cloud'; - $this->createWiki($wikiDomain, $targetDbVersion); + $this->createWiki($wikiDomain, self::VALID_WIKI_DB_VERSION_STRING_139); - $this->patchJson("{$this->route}?domain={$wikiDomain}&dbVersion={$targetDbVersion}") + $this->patchJson("{$this->routeSetDbVersion}?domain={$wikiDomain}&dbVersion={$targetDbVersion}") ->assertStatus(200) ->assertJson([ 'result' => 'success', ]); } - public function testDomainNotfound() { - $targetDbVersion = 'mw1.43-wbs1'; + public function testSetWikiDbVersionForDomainWikiNotfound() { + $targetDbVersion = self::VALID_WIKI_DB_VERSION_STRING_143; $wikiDomain = 'notFound.wikibase.cloud'; - $this->patchJson("{$this->route}?domain={$wikiDomain}&dbVersion={$targetDbVersion}") + $this->patchJson("{$this->routeSetDbVersion}?domain={$wikiDomain}&dbVersion={$targetDbVersion}") ->assertStatus(404); } - public function testUnknownDbVersion() { + public function testSetWikiDbVersionForDomainUnknownDbVersion() { $targetDbVersion = 'unknownVersion'; $wikiDomain = 'coffeebase.wikibase.cloud'; - $this->createWiki($wikiDomain, $targetDbVersion); + $this->createWiki($wikiDomain, self::VALID_WIKI_DB_VERSION_STRING_139); - $this->patchJson("{$this->route}?domain={$wikiDomain}&dbVersion={$targetDbVersion}") - ->assertStatus(500); + $this->patchJson("{$this->routeSetDbVersion}?domain={$wikiDomain}&dbVersion={$targetDbVersion}") + ->assertStatus(400); } - private function createWiki(string $domain, string $version) { - $wiki = Wiki::factory()->create(['domain' => $domain]); - WikiDb::create([ - 'name' => $domain, - 'user' => 'someUser', - 'password' => 'somePassword', - 'version' => $version, - 'prefix' => 'somePrefix', - 'wiki_id' => $wiki->id, - ]); + public function testSetWikiDbVersionForDomainMissingDbVersion() { + $wikiDomain = 'coffeebase.wikibase.cloud'; + + $this->createWiki($wikiDomain, self::VALID_WIKI_DB_VERSION_STRING_139); + + $this->patchJson("{$this->routeSetDbVersion}?domain={$wikiDomain}") + ->assertStatus(422); + } + + public function testSetWikiDbVersionForDomainMissingWikiDomain() { + $targetDbVersion = self::VALID_WIKI_DB_VERSION_STRING_143; + $wikiDomain = 'coffeebase.wikibase.cloud'; + + $this->createWiki($wikiDomain, self::VALID_WIKI_DB_VERSION_STRING_139); + + $this->patchJson("{$this->routeSetDbVersion}?dbVersion={$targetDbVersion}") + ->assertStatus(422); + } + + public function testGetWikiForDomainMissingWikiDomain() { + $this->getJson("{$this->routeGetWikiForDomain}") + ->assertStatus(422); + } + + public function testGetWikiForDomainWikiNotFound() { + $this->getJson("{$this->routeGetWikiForDomain}?domain=somewiki") + ->assertStatus(404); } } From 93bf48a590b1864e215ed1ec8cc64b38b8e7827b Mon Sep 17 00:00:00 2001 From: dena Date: Fri, 21 Nov 2025 19:38:19 +0100 Subject: [PATCH 5/9] clarify error message --- app/Http/Controllers/Backend/WikiController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Backend/WikiController.php b/app/Http/Controllers/Backend/WikiController.php index 4a9b2e557..3474c9cfb 100644 --- a/app/Http/Controllers/Backend/WikiController.php +++ b/app/Http/Controllers/Backend/WikiController.php @@ -48,7 +48,7 @@ public function setWikiDbVersionForDomain(Request $request): \Illuminate\Http\Js } if (!WikiDbVersionHelper::isValidDbVersion($targetDbVersion)) { - return response()->json(['error' => "Unknown database version string: '{$targetDbVersion}'"], 400); + return response()->json(['error' => "Invalid database version string: '{$targetDbVersion}'"], 400); } $wiki->wikiDb->version = $targetDbVersion; From e862d91d1e2abada82af040fd8ea1f54fbdbd38f Mon Sep 17 00:00:00 2001 From: dena Date: Fri, 21 Nov 2025 19:41:02 +0100 Subject: [PATCH 6/9] patch -> post --- routes/backend.php | 3 ++- tests/Routes/Backend/WikiControllerTest.php | 10 +++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/routes/backend.php b/routes/backend.php index 3f6300b5b..795e475a0 100644 --- a/routes/backend.php +++ b/routes/backend.php @@ -19,9 +19,10 @@ $router->group(['prefix' => 'wiki'], function () use ($router) { // GET $router->get('getWikiForDomain', ['uses' => 'WikiController@getWikiForDomain']); + // POST + $router->post('setDbVersion', ['uses' => 'WikiController@setWikiDbVersionForDomain']); // PATCH $router->patch('updateEntityImport', ['uses' => '\App\Http\Controllers\WikiEntityImportController@update']); - $router->patch('setDbVersion', ['uses' => 'WikiController@setWikiDbVersionForDomain']); }); $router->group(['prefix' => 'event'], function () use ($router) { diff --git a/tests/Routes/Backend/WikiControllerTest.php b/tests/Routes/Backend/WikiControllerTest.php index 071fc3a16..a1529e0c3 100644 --- a/tests/Routes/Backend/WikiControllerTest.php +++ b/tests/Routes/Backend/WikiControllerTest.php @@ -36,7 +36,7 @@ public function testSetWikiDbVersionForDomainSuccess() { $this->createWiki($wikiDomain, self::VALID_WIKI_DB_VERSION_STRING_139); - $this->patchJson("{$this->routeSetDbVersion}?domain={$wikiDomain}&dbVersion={$targetDbVersion}") + $this->postJson("{$this->routeSetDbVersion}?domain={$wikiDomain}&dbVersion={$targetDbVersion}") ->assertStatus(200) ->assertJson([ 'result' => 'success', @@ -47,7 +47,7 @@ public function testSetWikiDbVersionForDomainWikiNotfound() { $targetDbVersion = self::VALID_WIKI_DB_VERSION_STRING_143; $wikiDomain = 'notFound.wikibase.cloud'; - $this->patchJson("{$this->routeSetDbVersion}?domain={$wikiDomain}&dbVersion={$targetDbVersion}") + $this->postJson("{$this->routeSetDbVersion}?domain={$wikiDomain}&dbVersion={$targetDbVersion}") ->assertStatus(404); } @@ -57,7 +57,7 @@ public function testSetWikiDbVersionForDomainUnknownDbVersion() { $this->createWiki($wikiDomain, self::VALID_WIKI_DB_VERSION_STRING_139); - $this->patchJson("{$this->routeSetDbVersion}?domain={$wikiDomain}&dbVersion={$targetDbVersion}") + $this->postJson("{$this->routeSetDbVersion}?domain={$wikiDomain}&dbVersion={$targetDbVersion}") ->assertStatus(400); } @@ -66,7 +66,7 @@ public function testSetWikiDbVersionForDomainMissingDbVersion() { $this->createWiki($wikiDomain, self::VALID_WIKI_DB_VERSION_STRING_139); - $this->patchJson("{$this->routeSetDbVersion}?domain={$wikiDomain}") + $this->postJson("{$this->routeSetDbVersion}?domain={$wikiDomain}") ->assertStatus(422); } @@ -76,7 +76,7 @@ public function testSetWikiDbVersionForDomainMissingWikiDomain() { $this->createWiki($wikiDomain, self::VALID_WIKI_DB_VERSION_STRING_139); - $this->patchJson("{$this->routeSetDbVersion}?dbVersion={$targetDbVersion}") + $this->postJson("{$this->routeSetDbVersion}?dbVersion={$targetDbVersion}") ->assertStatus(422); } From a81961ba138c5c87f796fb2b120f0e1487719ebc Mon Sep 17 00:00:00 2001 From: dena <91744937+deer-wmde@users.noreply.github.com> Date: Mon, 24 Nov 2025 14:48:41 +0100 Subject: [PATCH 7/9] Apply suggestion from @outdooracorn Co-authored-by: Ollie <43674967+outdooracorn@users.noreply.github.com> --- app/Http/Controllers/Backend/WikiController.php | 1 - 1 file changed, 1 deletion(-) diff --git a/app/Http/Controllers/Backend/WikiController.php b/app/Http/Controllers/Backend/WikiController.php index 3474c9cfb..d21266599 100644 --- a/app/Http/Controllers/Backend/WikiController.php +++ b/app/Http/Controllers/Backend/WikiController.php @@ -8,7 +8,6 @@ use Illuminate\Http\Request; class WikiController extends Controller { - private static $with = ['wikiDb', 'wikiQueryserviceNamespace', 'settings']; public function getWikiForDomain(Request $request): \Illuminate\Http\JsonResponse { $validated = $request->validate([ From e85ca416dfcf332465ba3991960f8555756b38f4 Mon Sep 17 00:00:00 2001 From: dena Date: Mon, 24 Nov 2025 15:13:45 +0100 Subject: [PATCH 8/9] formatting --- app/Http/Controllers/Backend/WikiController.php | 1 - 1 file changed, 1 deletion(-) diff --git a/app/Http/Controllers/Backend/WikiController.php b/app/Http/Controllers/Backend/WikiController.php index d21266599..440d441e6 100644 --- a/app/Http/Controllers/Backend/WikiController.php +++ b/app/Http/Controllers/Backend/WikiController.php @@ -8,7 +8,6 @@ use Illuminate\Http\Request; class WikiController extends Controller { - public function getWikiForDomain(Request $request): \Illuminate\Http\JsonResponse { $validated = $request->validate([ 'domain' => 'required|string', From 3b7d1a0ec628ad9909a2775a1b921a00b91a4db9 Mon Sep 17 00:00:00 2001 From: dena Date: Mon, 24 Nov 2025 16:10:00 +0100 Subject: [PATCH 9/9] remove getDbVersion --- app/Helper/WikiDbVersionHelper.php | 16 ---------------- tests/Helper/WikiDbVersionHelperTest.php | 14 -------------- 2 files changed, 30 deletions(-) diff --git a/app/Helper/WikiDbVersionHelper.php b/app/Helper/WikiDbVersionHelper.php index 8419ac46b..c1026f594 100644 --- a/app/Helper/WikiDbVersionHelper.php +++ b/app/Helper/WikiDbVersionHelper.php @@ -11,11 +11,6 @@ */ class UnknownDbVersionException extends \Exception {} -/** - * Exception thrown when a mediawiki version is not mapped in WikiDbVersionHelper. - */ -class UnknownMwVersionException extends \Exception {} - class WikiDbVersionHelper { /** @var array Map of DB version strings to MediaWiki version strings */ private const DB_VERSION_TO_MW_VERSION = [ @@ -37,17 +32,6 @@ public static function isValidMwVersion(string $mwVersionString): bool { ); } - /** - * @throws UnknownMwVersionException - */ - public static function getDbVersion(string $mwVersionString): string { - if (self::isValidMwVersion($mwVersionString)) { - return array_flip(self::DB_VERSION_TO_MW_VERSION)[$mwVersionString]; - } - - throw new UnknownMwVersionException("Unknown MediaWiki version string: '{$mwVersionString}'"); - } - /** * @throws UnknownDbVersionException */ diff --git a/tests/Helper/WikiDbVersionHelperTest.php b/tests/Helper/WikiDbVersionHelperTest.php index 4b5a61c37..c3e9402c9 100644 --- a/tests/Helper/WikiDbVersionHelperTest.php +++ b/tests/Helper/WikiDbVersionHelperTest.php @@ -3,7 +3,6 @@ namespace Tests\Jobs; use App\Helper\UnknownDbVersionException; -use App\Helper\UnknownMwVersionException; use App\Helper\WikiDbVersionHelper; use Tests\TestCase; @@ -14,19 +13,6 @@ public function testUnknownDbVersion() { WikiDbVersionHelper::getMwVersion('invalidDbVersion'); } - public function testUnknownMwVersion() { - $this->expectException(UnknownMwVersionException::class); - - WikiDbVersionHelper::getDbVersion('invalidMwVersion'); - } - - public function testKnownDbVersion() { - $this->assertSame( - WikiDbVersionHelper::getDbVersion('143'), - 'mw1.43-wbs1' - ); - } - public function testKnownMwVersion() { $this->assertSame( WikiDbVersionHelper::getMwVersion('mw1.39-wbs1'),