Ladsgroup has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/339809 )
Change subject: Inject SetReference dependencies
......................................................................
Inject SetReference dependencies
Bug: T159026
Change-Id: I758b9dcf76d8441f2d004a58efcb3fec35aa3bdc
---
M repo/Wikibase.php
M repo/includes/Api/SetReference.php
2 files changed, 57 insertions(+), 22 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/09/339809/1
diff --git a/repo/Wikibase.php b/repo/Wikibase.php
index 46019b7..15d553f 100644
--- a/repo/Wikibase.php
+++ b/repo/Wikibase.php
@@ -394,7 +394,37 @@
);
}
];
- $wgAPIModules['wbsetreference'] = Wikibase\Repo\Api\SetReference::class;
+ $wgAPIModules['wbsetreference'] = [
+ 'class' => Wikibase\Repo\Api\SetReference::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\SetReference(
+ $mainModule,
+ $moduleName,
+
$wikibaseRepo->getExternalFormatDeserializerFactory(),
+ $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['wbremovereferences'] = [
'class' => Wikibase\Repo\Api\RemoveReferences::class,
'factory' => function( ApiMain $mainModule, $moduleName ) {
diff --git a/repo/includes/Api/SetReference.php
b/repo/includes/Api/SetReference.php
index 7721b10..95ea500 100644
--- a/repo/includes/Api/SetReference.php
+++ b/repo/includes/Api/SetReference.php
@@ -61,29 +61,34 @@
/**
* @param ApiMain $mainModule
* @param string $moduleName
- * @param string $modulePrefix
+ * @param DeserializerFactory $deserializerFactory
+ * @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,
+ DeserializerFactory $deserializerFactory,
+ 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->statementChangeOpFactory =
$changeOpFactoryProvider->getStatementChangeOpFactory();
- $this->errorReporter = $apiHelperFactory->getErrorReporter(
$this );
- $this->deserializerFactory =
$wikibaseRepo->getExternalFormatDeserializerFactory();
-
- $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->deserializerFactory = $deserializerFactory;
+ $this->errorReporter = $errorReporter;
+ $this->statementChangeOpFactory = $statementChangeOpFactory;
+ $this->modificationHelper = $modificationHelper;
+ $this->guidParser = $guidParser;
+ $this->resultBuilder = $resultBuilderInstantiator( $this );
+ $this->entitySavingHelper = $entitySavingHelperInstantiator(
$this );
}
/**
--
To view, visit https://gerrit.wikimedia.org/r/339809
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I758b9dcf76d8441f2d004a58efcb3fec35aa3bdc
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