Ladsgroup has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/337444 )
Change subject: Inject RemoveClaims dependencies
......................................................................
Inject RemoveClaims dependencies
Bug: T158000
Change-Id: I95f4d8fa401af0c63c96387da9805be3f03a37ad
---
M repo/Wikibase.php
M repo/includes/Api/RemoveClaims.php
2 files changed, 53 insertions(+), 21 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/44/337444/1
diff --git a/repo/Wikibase.php b/repo/Wikibase.php
index 3041b8f..279e1d5 100644
--- a/repo/Wikibase.php
+++ b/repo/Wikibase.php
@@ -306,7 +306,36 @@
);
}
];
- $wgAPIModules['wbremoveclaims'] = Wikibase\Repo\Api\RemoveClaims::class;
+ $wgAPIModules['wbremoveclaims'] = [
+ 'class' => Wikibase\Repo\Api\RemoveClaims::class,
+ 'factory' => function( ApiMain $mainModule, $moduleName ) {
+ $wikibaseRepo =
\Wikibase\Repo\WikibaseRepo::getDefaultInstance();
+ $apiHelperFactory = $wikibaseRepo->getApiHelperFactory(
$mainModule->getContext() );
+ $changeOpFactoryProvider =
$wikibaseRepo->getChangeOpFactoryProvider();
+
+ $modificationHelper = new
\Wikibase\Repo\Api\StatementModificationHelper(
+ $wikibaseRepo->getSnakFactory(),
+ $wikibaseRepo->getEntityIdParser(),
+ $wikibaseRepo->getStatementGuidValidator(),
+ $apiHelperFactory->getErrorReporter(
$mainModule )
+ );
+
+ return new Wikibase\Repo\Api\RemoveClaims(
+ $mainModule,
+ $moduleName,
+ $apiHelperFactory->getErrorReporter(
$mainModule ),
+
$changeOpFactoryProvider->getStatementChangeOpFactory(),
+ $modificationHelper,
+ $wikibaseRepo->getStatementGuidParser(),
+ function ( $module ) use ( $apiHelperFactory ) {
+ return
$apiHelperFactory->getResultBuilder( $module );
+ },
+ function ( $module ) use ( $apiHelperFactory ) {
+ return
$apiHelperFactory->getEntitySavingHelper( $module );
+ }
+ );
+ }
+ ];
$wgAPIModules['wbsetclaimvalue'] =
Wikibase\Repo\Api\SetClaimValue::class;
$wgAPIModules['wbsetreference'] = Wikibase\Repo\Api\SetReference::class;
$wgAPIModules['wbremovereferences'] =
Wikibase\Repo\Api\RemoveReferences::class;
diff --git a/repo/includes/Api/RemoveClaims.php
b/repo/includes/Api/RemoveClaims.php
index ee7e643..1216c76 100644
--- a/repo/includes/Api/RemoveClaims.php
+++ b/repo/includes/Api/RemoveClaims.php
@@ -13,7 +13,6 @@
use Wikibase\DataModel\Statement\Statement;
use Wikibase\DataModel\Statement\StatementList;
use Wikibase\DataModel\Statement\StatementListProvider;
-use Wikibase\Repo\WikibaseRepo;
/**
* API module for removing claims.
@@ -57,28 +56,32 @@
/**
* @param ApiMain $mainModule
* @param string $moduleName
- * @param string $modulePrefix
+ * @param ApiErrorReporter $errorReporter
+ * @param StatementChangeOpFactory $statementChangeOpFactory
+ * @param StatementModificationHelper $modificationHelper
+ * @param StatementGuidParser $guidParser
+ * @param callable $resultBuilderInstantiator
+ * @param callable $entitySavingHelperInstantiator
*/
- public function __construct( ApiMain $mainModule, $moduleName,
$modulePrefix = '' ) {
- parent::__construct( $mainModule, $moduleName, $modulePrefix );
+ public function __construct(
+ ApiMain $mainModule,
+ $moduleName,
+ ApiErrorReporter $errorReporter,
+ StatementChangeOpFactory $statementChangeOpFactory,
+ StatementModificationHelper $modificationHelper,
+ StatementGuidParser $guidParser,
+ callable $resultBuilderInstantiator,
+ callable $entitySavingHelperInstantiator
+ ) {
+ parent::__construct( $mainModule, $moduleName );
- $wikibaseRepo = WikibaseRepo::getDefaultInstance();
- $apiHelperFactory = $wikibaseRepo->getApiHelperFactory(
$this->getContext() );
- $changeOpFactoryProvider =
$wikibaseRepo->getChangeOpFactoryProvider();
+ $this->errorReporter = $errorReporter;
+ $this->statementChangeOpFactory = $statementChangeOpFactory;
+ $this->modificationHelper = $modificationHelper;
- $this->errorReporter = $apiHelperFactory->getErrorReporter(
$this );
- $this->statementChangeOpFactory =
$changeOpFactoryProvider->getStatementChangeOpFactory();
-
- $this->modificationHelper = new StatementModificationHelper(
- $wikibaseRepo->getSnakFactory(),
- $wikibaseRepo->getEntityIdParser(),
- $wikibaseRepo->getStatementGuidValidator(),
- $apiHelperFactory->getErrorReporter( $this )
- );
-
- $this->guidParser = $wikibaseRepo->getStatementGuidParser();
- $this->resultBuilder = $apiHelperFactory->getResultBuilder(
$this );
- $this->entitySavingHelper =
$apiHelperFactory->getEntitySavingHelper( $this );
+ $this->guidParser = $guidParser;
+ $this->resultBuilder = $resultBuilderInstantiator( $this );
+ $this->entitySavingHelper = $entitySavingHelperInstantiator(
$this );
}
/**
--
To view, visit https://gerrit.wikimedia.org/r/337444
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I95f4d8fa401af0c63c96387da9805be3f03a37ad
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