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

Reply via email to