jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/335161 )
Change subject: Inject SetQualifier dependencies
......................................................................
Inject SetQualifier dependencies
Bug: T156688
Change-Id: Icb9a958b155ef4157606cab1f48f5bfbbda1c0da
---
M repo/Wikibase.php
M repo/includes/Api/SetQualifier.php
2 files changed, 57 insertions(+), 20 deletions(-)
Approvals:
Daniel Kinzler: Looks good to me, but someone else must approve
WMDE-leszek: Looks good to me, but someone else must approve
Ladsgroup: Looks good to me, approved
jenkins-bot: Verified
diff --git a/repo/Wikibase.php b/repo/Wikibase.php
index ec6618c..2fe90c5 100644
--- a/repo/Wikibase.php
+++ b/repo/Wikibase.php
@@ -236,7 +236,38 @@
$wgAPIModules['wbremovereferences'] =
Wikibase\Repo\Api\RemoveReferences::class;
$wgAPIModules['wbsetclaim'] = Wikibase\Repo\Api\SetClaim::class;
$wgAPIModules['wbremovequalifiers'] =
Wikibase\Repo\Api\RemoveQualifiers::class;
- $wgAPIModules['wbsetqualifier'] = Wikibase\Repo\Api\SetQualifier::class;
+ $wgAPIModules['wbsetqualifier'] = [
+ 'class' => Wikibase\Repo\Api\SetQualifier::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\SetQualifier(
+ $mainModule,
+ $moduleName,
+ function ( $module ) use ( $apiHelperFactory ) {
+ return
$apiHelperFactory->getErrorReporter( $module );
+ },
+
$changeOpFactoryProvider->getStatementChangeOpFactory(),
+ $modificationHelper,
+ $wikibaseRepo->getStatementGuidParser(),
+ function ( $module ) use ( $apiHelperFactory ) {
+ return
$apiHelperFactory->getResultBuilder( $module );
+ },
+ function ( $module ) use ( $apiHelperFactory ) {
+ return
$apiHelperFactory->getEntitySavingHelper( $module );
+ }
+ );
+ }
+ ];
$wgAPIModules['wbmergeitems'] = Wikibase\Repo\Api\MergeItems::class;
$wgAPIModules['wbformatvalue'] = [
'class' => Wikibase\Repo\Api\FormatSnakValue::class,
diff --git a/repo/includes/Api/SetQualifier.php
b/repo/includes/Api/SetQualifier.php
index 975c1d5..d861f6b 100644
--- a/repo/includes/Api/SetQualifier.php
+++ b/repo/includes/Api/SetQualifier.php
@@ -54,28 +54,34 @@
/**
* @param ApiMain $mainModule
* @param string $moduleName
- * @param string $modulePrefix
+ * @param callable $errorReporterInstantiator
+ * @param StatementChangeOpFactory $statementChangeOpFactory
+ * @param StatementModificationHelper $modificationHelper
+ * @param StatementGuidParser $guidParser
+ * @param callable $resultBuilderInstantiator
+ * @param callable $entitySavingHelperInstantiator
+ *
+ * @note Using callable for several arguments because of circular
dependency and unability to inject object to constructor
*/
- public function __construct( ApiMain $mainModule, $moduleName,
$modulePrefix = '' ) {
- parent::__construct( $mainModule, $moduleName, $modulePrefix );
+ public function __construct(
+ ApiMain $mainModule,
+ $moduleName,
+ callable $errorReporterInstantiator,
+ 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 = $errorReporterInstantiator( $this );
+ $this->statementChangeOpFactory = $statementChangeOpFactory;
- $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->modificationHelper = $modificationHelper;
+ $this->guidParser = $guidParser;
+ $this->resultBuilder = $resultBuilderInstantiator( $this );
+ $this->entitySavingHelper = $entitySavingHelperInstantiator(
$this );
}
/**
--
To view, visit https://gerrit.wikimedia.org/r/335161
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Icb9a958b155ef4157606cab1f48f5bfbbda1c0da
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Ladsgroup <[email protected]>
Gerrit-Reviewer: Addshore <[email protected]>
Gerrit-Reviewer: Aleksey Bekh-Ivanov (WMDE) <[email protected]>
Gerrit-Reviewer: Daniel Kinzler <[email protected]>
Gerrit-Reviewer: Ladsgroup <[email protected]>
Gerrit-Reviewer: Thiemo Mättig (WMDE) <[email protected]>
Gerrit-Reviewer: WMDE-leszek <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits