Ladsgroup has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/330403 )

Change subject: Inject dependencies of ListSubscribers API module
......................................................................

Inject dependencies of ListSubscribers API module

Bug: T154574
Change-Id: Iddeb00cf47d85acccdc744accb5365d319334b2b
---
M repo/Wikibase.php
M repo/includes/Api/ListSubscribers.php
M repo/tests/phpunit/includes/Api/ListSubscribersTest.php
3 files changed, 38 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/03/330403/1

diff --git a/repo/Wikibase.php b/repo/Wikibase.php
index 40689e7..b94fa92 100644
--- a/repo/Wikibase.php
+++ b/repo/Wikibase.php
@@ -177,7 +177,21 @@
        $wgAPIModules['wbavailablebadges'] = 
Wikibase\Repo\Api\AvailableBadges::class;
        $wgAPIModules['wbcreateredirect'] = 
Wikibase\Repo\Api\CreateRedirect::class;
        $wgAPIListModules['wbsearch'] = 
Wikibase\Repo\Api\QuerySearchEntities::class;
-       $wgAPIListModules['wbsubscribers'] = 
Wikibase\Repo\Api\ListSubscribers::class;
+       $wgAPIListModules['wbsubscribers'] = [
+               'class' => Wikibase\Repo\Api\ListSubscribers::class,
+           'factory' => function( $mainModule, $moduleName, $modulePrefix = 
'wbls') {
+                   $wikibaseRepo = 
\Wikibase\Repo\WikibaseRepo::getDefaultInstance();
+                   $mediaWikiServices = 
\MediaWiki\MediaWikiServices::getInstance();
+                   return new Wikibase\Repo\Api\ListSubscribers(
+                           $mainModule,
+                               $moduleName,
+                           $wikibaseRepo,
+                           $wikibaseRepo->getEntityIdParser(),
+                           $mediaWikiServices->getSiteLookup(),
+                           $modulePrefix
+                   );
+           }
+       ];
 
        // Special page registration
        $wgSpecialPages['NewItem'] = function () {
diff --git a/repo/includes/Api/ListSubscribers.php 
b/repo/includes/Api/ListSubscribers.php
index 84e72f6..95e464e 100644
--- a/repo/includes/Api/ListSubscribers.php
+++ b/repo/includes/Api/ListSubscribers.php
@@ -6,7 +6,6 @@
 use ApiQueryBase;
 use ApiQuery;
 use ApiResult;
-use MediaWiki\MediaWikiServices;
 use ResultWrapper;
 use SiteLookup;
 use stdClass;
@@ -42,19 +41,27 @@
        /**
         * @param ApiQuery $mainModule
         * @param string $moduleName
+        * @param WikibaseRepo $repo
+        * @param EntityIdParser $idParser
+        * @param SiteLookup $siteLookup
         * @param string $modulePrefix
         *
         * @see ApiBase::__construct
         */
-       public function __construct( ApiQuery $mainModule, $moduleName, 
$modulePrefix = 'wbls' ) {
+       public function __construct(
+               ApiQuery $mainModule,
+               $moduleName,
+               WikibaseRepo $repo,
+               EntityIdParser $idParser,
+               SiteLookup $siteLookup,
+               $modulePrefix = 'wbls'
+       ) {
                parent::__construct( $mainModule, $moduleName, $modulePrefix );
 
-               $wikibaseRepo = WikibaseRepo::getDefaultInstance();
-               $apiHelperFactory = $wikibaseRepo->getApiHelperFactory( 
$this->getContext() );
-               $mediaWikiServices = MediaWikiServices::getInstance();
-               $this->errorReporter = $apiHelperFactory->getErrorReporter( 
$this );
-               $this->idParser = $wikibaseRepo->getEntityIdParser();
-               $this->siteLookup = $mediaWikiServices->getSiteLookup();
+               $this->errorReporter = $repo->getApiHelperFactory( 
$this->getContext() )
+                       ->getErrorReporter( $this );
+               $this->idParser = $idParser;
+               $this->siteLookup = $siteLookup;
        }
 
        public function execute() {
diff --git a/repo/tests/phpunit/includes/Api/ListSubscribersTest.php 
b/repo/tests/phpunit/includes/Api/ListSubscribersTest.php
index a0f81eb..c9291f1 100644
--- a/repo/tests/phpunit/includes/Api/ListSubscribersTest.php
+++ b/repo/tests/phpunit/includes/Api/ListSubscribersTest.php
@@ -5,9 +5,11 @@
 use ApiMain;
 use ApiQuery;
 use FauxRequest;
+use MediaWiki\MediaWikiServices;
 use MediaWikiLangTestCase;
 use RequestContext;
 use Wikibase\Repo\Api\ListSubscribers;
+use Wikibase\Repo\WikibaseRepo;
 
 /**
  * @covers Wikibase\Repo\Api\ListSubscribers
@@ -83,9 +85,14 @@
         * @return array[]
         */
        private function callApiModule( array $params ) {
+               $wikibaseRepo = WikibaseRepo::getDefaultInstance();
+               $mediaWikiServices = MediaWikiServices::getInstance();
                $module = new ListSubscribers(
                        $this->getQueryModule( $params ),
-                       'subscribers'
+                       'subscribers',
+                       $wikibaseRepo,
+                       $wikibaseRepo->getEntityIdParser(),
+                       $mediaWikiServices->getSiteLookup()
                );
 
                $module->execute();

-- 
To view, visit https://gerrit.wikimedia.org/r/330403
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iddeb00cf47d85acccdc744accb5365d319334b2b
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Ladsgroup <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to