From 416ea2bb3abfeaf716fe4c9e48088ad6f46decf3 Mon Sep 17 00:00:00 2001 From: Thalia Date: Mon, 19 Apr 2021 15:12:50 +0100 Subject: [PATCH] Inject BlockRestrictionStore into ApiQueryBlocks ApiQueryBlocks::getRestrictionData is also no longer static. Change-Id: I5dc8416829250e880711e41a03057c28cd06b497 --- includes/api/ApiQuery.php | 7 ++++++- includes/api/ApiQueryBlocks.php | 24 ++++++++++++++++++------ 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/includes/api/ApiQuery.php b/includes/api/ApiQuery.php index dc52c518f4c..27415afcbf0 100644 --- a/includes/api/ApiQuery.php +++ b/includes/api/ApiQuery.php @@ -87,7 +87,12 @@ class ApiQuery extends ApiBase { 'alltransclusions' => ApiQueryAllLinks::class, 'allusers' => ApiQueryAllUsers::class, 'backlinks' => ApiQueryBacklinks::class, - 'blocks' => ApiQueryBlocks::class, + 'blocks' => [ + 'class' => ApiQueryBlocks::class, + 'services' => [ + 'BlockRestrictionStore', + ], + ], 'categorymembers' => ApiQueryCategoryMembers::class, 'deletedrevs' => ApiQueryDeletedrevs::class, 'embeddedin' => ApiQueryBacklinks::class, diff --git a/includes/api/ApiQueryBlocks.php b/includes/api/ApiQueryBlocks.php index f858387c776..e3bffafcf64 100644 --- a/includes/api/ApiQueryBlocks.php +++ b/includes/api/ApiQueryBlocks.php @@ -20,7 +20,7 @@ * @file */ -use MediaWiki\MediaWikiServices; +use MediaWiki\Block\BlockRestrictionStore; use MediaWiki\ParamValidator\TypeDef\UserDef; use Wikimedia\IPUtils; use Wikimedia\Rdbms\IResultWrapper; @@ -32,8 +32,21 @@ use Wikimedia\Rdbms\IResultWrapper; */ class ApiQueryBlocks extends ApiQueryBase { - public function __construct( ApiQuery $query, $moduleName ) { + /** @var BlockRestrictionStore */ + private $blockRestrictionStore; + + /** + * @param ApiQuery $query + * @param string $moduleName + * @param BlockRestrictionStore $blockRestrictionStore + */ + public function __construct( + ApiQuery $query, + $moduleName, + BlockRestrictionStore $blockRestrictionStore + ) { parent::__construct( $query, $moduleName, 'bk' ); + $this->blockRestrictionStore = $blockRestrictionStore; } public function execute() { @@ -189,7 +202,7 @@ class ApiQueryBlocks extends ApiQueryBase { $restrictions = []; if ( $fld_restrictions ) { - $restrictions = self::getRestrictionData( $res, $params['limit'] ); + $restrictions = $this->getRestrictionData( $res, $params['limit'] ); } $count = 0; @@ -285,7 +298,7 @@ class ApiQueryBlocks extends ApiQueryBase { * * @return array */ - private static function getRestrictionData( IResultWrapper $result, $limit ) { + private function getRestrictionData( IResultWrapper $result, $limit ) { $partialIds = []; $count = 0; foreach ( $result as $row ) { @@ -294,8 +307,7 @@ class ApiQueryBlocks extends ApiQueryBase { } } - $blockRestrictionStore = MediaWikiServices::getInstance()->getBlockRestrictionStore(); - $restrictions = $blockRestrictionStore->loadByBlockId( $partialIds ); + $restrictions = $this->blockRestrictionStore->loadByBlockId( $partialIds ); $data = []; $keys = [