Daniel Kinzler has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/345324 )

Change subject: Inject EditEntity API module dependencies
......................................................................


Inject EditEntity API module dependencies

Bug: T161705
Change-Id: I3e575fab2ed913ade72f97dff8462f43b0d1e3b7
---
M repo/Wikibase.php
M repo/includes/Api/EditEntity.php
M repo/tests/phpunit/includes/Api/ApiXmlFormatTest.php
3 files changed, 57 insertions(+), 18 deletions(-)

Approvals:
  Daniel Kinzler: Verified; Looks good to me, approved



diff --git a/repo/Wikibase.php b/repo/Wikibase.php
index 4fd17d3..cfb8947 100644
--- a/repo/Wikibase.php
+++ b/repo/Wikibase.php
@@ -232,7 +232,27 @@
                        );
                }
        ];
-       $wgAPIModules['wbeditentity'] = Wikibase\Repo\Api\EditEntity::class;
+       $wgAPIModules['wbeditentity'] = [
+               'class' => Wikibase\Repo\Api\EditEntity::class,
+               'factory' => function ( ApiMain $mainModule, $moduleName ) {
+                       $wikibaseRepo = 
Wikibase\Repo\WikibaseRepo::getDefaultInstance();
+                       $changeOpFactoryProvider = 
$wikibaseRepo->getChangeOpFactoryProvider();
+                       return new Wikibase\Repo\Api\EditEntity(
+                               $mainModule,
+                               $moduleName,
+                               $wikibaseRepo->getTermsLanguages(),
+                               $wikibaseRepo->getEntityRevisionLookup( 
'uncached' ),
+                               $wikibaseRepo->getEntityIdParser(),
+                               $wikibaseRepo->getEntityFactory(),
+                               
$wikibaseRepo->getExternalFormatStatementDeserializer(),
+                               
$wikibaseRepo->getDataTypeDefinitions()->getTypeIds(),
+                               
$changeOpFactoryProvider->getFingerprintChangeOpFactory(),
+                               
$changeOpFactoryProvider->getStatementChangeOpFactory(),
+                               
$changeOpFactoryProvider->getSiteLinkChangeOpFactory(),
+                               $wikibaseRepo->getEntityChangeOpProvider()
+                       );
+               }
+       ];
        $wgAPIModules['wblinktitles'] = [
                'class' => Wikibase\Repo\Api\LinkTitles::class,
                'factory' => function ( ApiMain $mainModule, $moduleName ) {
diff --git a/repo/includes/Api/EditEntity.php b/repo/includes/Api/EditEntity.php
index 342cdc8..1ca8c25 100644
--- a/repo/includes/Api/EditEntity.php
+++ b/repo/includes/Api/EditEntity.php
@@ -93,26 +93,45 @@
         *
         * @param ApiMain $mainModule
         * @param string $moduleName
-        * @param string $modulePrefix
+        * @param ContentLanguages $termsLanguages
+        * @param EntityRevisionLookup $revisionLookup
+        * @param EntityIdParser $idParser
+        * @param EntityFactory $entityFactory
+        * @param Deserializer $statementDeserializer
+        * @param string[] $propertyDataTypes
+        * @param FingerprintChangeOpFactory $termChangeOpFactory
+        * @param StatementChangeOpFactory $statementChangeOpFactory
+        * @param SiteLinkChangeOpFactory $siteLinkChangeOpFactory
+        * @param EntityChangeOpProvider $entityChangeOpProvider
         *
-        * @throws MWException
         */
-       public function __construct( ApiMain $mainModule, $moduleName, 
$modulePrefix = '' ) {
-               parent::__construct( $mainModule, $moduleName, $modulePrefix );
+       public function __construct(
+               ApiMain $mainModule,
+               $moduleName,
+               ContentLanguages $termsLanguages,
+               EntityRevisionLookup $revisionLookup,
+               EntityIdParser $idParser,
+               EntityFactory $entityFactory,
+               Deserializer $statementDeserializer,
+               array $propertyDataTypes,
+               FingerprintChangeOpFactory $termChangeOpFactory,
+               StatementChangeOpFactory $statementChangeOpFactory,
+               SiteLinkChangeOpFactory $siteLinkChangeOpFactory,
+               EntityChangeOpProvider $entityChangeOpProvider
+       ) {
+               parent::__construct( $mainModule, $moduleName );
 
-               $wikibaseRepo = WikibaseRepo::getDefaultInstance();
-               $this->termsLanguages = $wikibaseRepo->getTermsLanguages();
-               $this->revisionLookup = $wikibaseRepo->getEntityRevisionLookup( 
'uncached' );
-               $this->idParser = $wikibaseRepo->getEntityIdParser();
-               $this->entityFactory = $wikibaseRepo->getEntityFactory();
-               $this->propertyDataTypes = 
$wikibaseRepo->getDataTypeDefinitions()->getTypeIds();
-               $this->statementDeserializer = 
$wikibaseRepo->getExternalFormatStatementDeserializer();
+               $this->termsLanguages = $termsLanguages;
+               $this->revisionLookup = $revisionLookup;
+               $this->idParser = $idParser;
+               $this->entityFactory = $entityFactory;
+               $this->statementDeserializer = $statementDeserializer;
+               $this->propertyDataTypes = $propertyDataTypes;
 
-               $changeOpFactoryProvider = 
$wikibaseRepo->getChangeOpFactoryProvider();
-               $this->termChangeOpFactory = 
$changeOpFactoryProvider->getFingerprintChangeOpFactory();
-               $this->statementChangeOpFactory = 
$changeOpFactoryProvider->getStatementChangeOpFactory();
-               $this->siteLinkChangeOpFactory = 
$changeOpFactoryProvider->getSiteLinkChangeOpFactory();
-               $this->entityChangeOpProvider = 
$wikibaseRepo->getEntityChangeOpProvider();
+               $this->termChangeOpFactory = $termChangeOpFactory;
+               $this->statementChangeOpFactory = $statementChangeOpFactory;
+               $this->siteLinkChangeOpFactory = $siteLinkChangeOpFactory;
+               $this->entityChangeOpProvider = $entityChangeOpProvider;
        }
 
        /**
diff --git a/repo/tests/phpunit/includes/Api/ApiXmlFormatTest.php 
b/repo/tests/phpunit/includes/Api/ApiXmlFormatTest.php
index d7335fb..60bb7ba 100644
--- a/repo/tests/phpunit/includes/Api/ApiXmlFormatTest.php
+++ b/repo/tests/phpunit/includes/Api/ApiXmlFormatTest.php
@@ -266,7 +266,7 @@
                        'data' => $json,
                );
 
-               $module = $this->getApiModule( EditEntity::class, 
'wbeditEntity', $params, true );
+               $module = $this->getApiModule( EditEntity::class, 
'wbeditentity', $params, true );
                $result = $this->executeApiModule( $module );
                $actual = $this->removePageInfoAttributes( $result, $entityId );
                $actual = $this->replaceHashWithMock( $actual );

-- 
To view, visit https://gerrit.wikimedia.org/r/345324
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I3e575fab2ed913ade72f97dff8462f43b0d1e3b7
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Ladsgroup <ladsgr...@gmail.com>
Gerrit-Reviewer: Addshore <addshorew...@gmail.com>
Gerrit-Reviewer: Aleksey Bekh-Ivanov (WMDE) <aleksey.bekh-iva...@wikimedia.de>
Gerrit-Reviewer: Daniel Kinzler <daniel.kinz...@wikimedia.de>
Gerrit-Reviewer: Ladsgroup <ladsgr...@gmail.com>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to