Skip to content

Commit

Permalink
Merge "Inject dependencies of ListSubscribers API module"
Browse files Browse the repository at this point in the history
  • Loading branch information
jenkins-bot authored and Gerrit Code Review committed Jan 6, 2017
2 parents 2ca96a9 + 318cd9a commit ee4de55
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 9 deletions.
15 changes: 14 additions & 1 deletion repo/Wikibase.php
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,20 @@
$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,
$modulePrefix,
$wikibaseRepo->getEntityIdParser(),
$mediaWikiServices->getSiteLookup()
);
}
];

// Special page registration
$wgSpecialPages['NewItem'] = function () {
Expand Down
20 changes: 13 additions & 7 deletions repo/includes/Api/ListSubscribers.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
use ApiQueryBase;
use ApiQuery;
use ApiResult;
use MediaWiki\MediaWikiServices;
use ResultWrapper;
use SiteLookup;
use stdClass;
Expand Down Expand Up @@ -43,18 +42,25 @@ class ListSubscribers extends ApiQueryBase {
* @param ApiQuery $mainModule
* @param string $moduleName
* @param string $modulePrefix
* @param EntityIdParser $idParser
* @param SiteLookup $siteLookup
*
* @see ApiBase::__construct
*/
public function __construct( ApiQuery $mainModule, $moduleName, $modulePrefix = 'wbls' ) {
public function __construct(
ApiQuery $mainModule,
$moduleName,
$modulePrefix,
EntityIdParser $idParser,
SiteLookup $siteLookup
) {
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 = $wikibaseRepo->getApiHelperFactory( $this->getContext() )
->getErrorReporter( $this );
$this->idParser = $idParser;
$this->siteLookup = $siteLookup;
}

public function execute() {
Expand Down
9 changes: 8 additions & 1 deletion repo/tests/phpunit/includes/Api/ListSubscribersTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -83,9 +85,14 @@ private function getQueryModule( array $params ) {
* @return array[]
*/
private function callApiModule( array $params ) {
$wikibaseRepo = WikibaseRepo::getDefaultInstance();
$mediaWikiServices = MediaWikiServices::getInstance();
$module = new ListSubscribers(
$this->getQueryModule( $params ),
'subscribers'
'subscribers',
'wbls',
$wikibaseRepo->getEntityIdParser(),
$mediaWikiServices->getSiteLookup()
);

$module->execute();
Expand Down

0 comments on commit ee4de55

Please sign in to comment.