jenkins-bot has submitted this change and it was merged.

Change subject: Move snakValidation to ClaimModificationHelper
......................................................................


Move snakValidation to ClaimModificationHelper

Change-Id: I80e1489a28cff5f078126b7fd55c4d6400d47221
---
M repo/includes/api/ClaimModificationHelper.php
M repo/includes/api/CreateClaim.php
M repo/includes/api/ModifyClaim.php
M repo/tests/phpunit/includes/api/ClaimModificationHelperTest.php
4 files changed, 42 insertions(+), 31 deletions(-)

Approvals:
  Addshore: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/repo/includes/api/ClaimModificationHelper.php 
b/repo/includes/api/ClaimModificationHelper.php
index 51f6563..eb6776f 100644
--- a/repo/includes/api/ClaimModificationHelper.php
+++ b/repo/includes/api/ClaimModificationHelper.php
@@ -83,6 +83,13 @@
        /**
         * @since 0.4
         *
+        * @var SnakValidationHelper
+        */
+       protected $snakValidation;
+
+       /**
+        * @since 0.4
+        *
         * @param \ApiMain $apiMain
         * @param EntityContentFactory $entityContentFactory
         * @param SnakConstructionService $snakConstructionService
@@ -93,13 +100,15 @@
                EntityContentFactory $entityContentFactory,
                SnakConstructionService $snakConstructionService,
                EntityIdParser $entityIdParser,
-               ClaimGuidValidator $claimGuidValidator
+               ClaimGuidValidator $claimGuidValidator,
+               SnakValidationHelper $snakValidation
        ) {
                $this->apiMain = $apiMain;
                $this->entityContentFactory = $entityContentFactory;
                $this->snakConstructionService = $snakConstructionService;
                $this->entityIdParser = $entityIdParser;
                $this->claimGuidValidator = $claimGuidValidator;
+               $this->snakValidation = $snakValidation;
        }
 
        /**
@@ -188,6 +197,8 @@
                        $this->apiMain->dieUsage( 'Invalid snak: 
InvalidArgumentException', 'invalid-snak' );
                }
 
+               $this->snakValidation->validateSnak( $snak );
+
                return $snak;
        }
 
diff --git a/repo/includes/api/CreateClaim.php 
b/repo/includes/api/CreateClaim.php
index 46ce10f..d95bc2f 100644
--- a/repo/includes/api/CreateClaim.php
+++ b/repo/includes/api/CreateClaim.php
@@ -8,7 +8,6 @@
 use Wikibase\Repo\WikibaseRepo;
 use Wikibase\Claims;
 use Wikibase\ChangeOpMainSnak;
-use Wikibase\Validators\ValidatorErrorLocalizer;
 use ValueParsers\ParseException;
 
 /**
@@ -42,27 +41,6 @@
 class CreateClaim extends ModifyClaim {
 
        /**
-        * @since 0.4
-        *
-        * @var SnakValidationHelper
-        */
-       protected $snakValidation;
-
-       /**
-        * see ApiBase::__construct()
-        */
-       public function __construct( ApiMain $mainModule, $moduleName, 
$modulePrefix = '' ) {
-               parent::__construct( $mainModule, $moduleName, $modulePrefix );
-
-               $this->snakValidation = new SnakValidationHelper(
-                       $this,
-                       
WikibaseRepo::getDefaultInstance()->getPropertyDataTypeLookup(),
-                       
WikibaseRepo::getDefaultInstance()->getDataTypeFactory(),
-                       new ValidatorErrorLocalizer()
-               );
-       }
-
-       /**
         * @see \ApiBase::execute
         *
         * @since 0.2
@@ -83,7 +61,6 @@
                $propertyId = 
$this->claimModificationHelper->getEntityIdFromString( $params['property'] );
 
                $snak = $this->claimModificationHelper->getSnakInstance( 
$params, $propertyId );
-               $this->snakValidation->validateSnak( $snak );
 
                $summary = $this->claimModificationHelper->createSummary( 
$params, $this );
                $changeOp = new ChangeOpMainSnak( '', $snak, 
WikibaseRepo::getDefaultInstance()->getIdFormatter() );
diff --git a/repo/includes/api/ModifyClaim.php 
b/repo/includes/api/ModifyClaim.php
index 94df434..1b2b2ea 100644
--- a/repo/includes/api/ModifyClaim.php
+++ b/repo/includes/api/ModifyClaim.php
@@ -13,6 +13,7 @@
 use Wikibase\Property;
 use Wikibase\EntityContentFactory;
 use Wikibase\Lib\ClaimGuidValidator;
+use Wikibase\Validators\ValidatorErrorLocalizer;
 
 /**
  * Base class for modifying claims.
@@ -56,12 +57,20 @@
        public function __construct( ApiMain $mainModule, $moduleName, 
$modulePrefix = '' ) {
                parent::__construct( $mainModule, $moduleName, $modulePrefix );
 
+               $snakValidation = new SnakValidationHelper(
+                       $this,
+                       
WikibaseRepo::getDefaultInstance()->getPropertyDataTypeLookup(),
+                       
WikibaseRepo::getDefaultInstance()->getDataTypeFactory(),
+                       new ValidatorErrorLocalizer()
+               );
+
                $this->claimModificationHelper = new ClaimModificationHelper(
-                               $mainModule,
-                               
WikibaseRepo::getDefaultInstance()->getEntityContentFactory(),
-                               
WikibaseRepo::getDefaultInstance()->getSnakConstructionService(),
-                               
WikibaseRepo::getDefaultInstance()->getEntityIdParser(),
-                               
WikibaseRepo::getDefaultInstance()->getClaimGuidValidator()
+                       $mainModule,
+                       
WikibaseRepo::getDefaultInstance()->getEntityContentFactory(),
+                       
WikibaseRepo::getDefaultInstance()->getSnakConstructionService(),
+                       WikibaseRepo::getDefaultInstance()->getEntityIdParser(),
+                       
WikibaseRepo::getDefaultInstance()->getClaimGuidValidator(),
+                       $snakValidation
                );
        }
 
diff --git a/repo/tests/phpunit/includes/api/ClaimModificationHelperTest.php 
b/repo/tests/phpunit/includes/api/ClaimModificationHelperTest.php
index 13315bd..3286892 100644
--- a/repo/tests/phpunit/includes/api/ClaimModificationHelperTest.php
+++ b/repo/tests/phpunit/includes/api/ClaimModificationHelperTest.php
@@ -6,10 +6,12 @@
 use Wikibase\EntityId;
 use ApiMain;
 use Wikibase\Api\ClaimModificationHelper;
+use Wikibase\Api\SnakValidationHelper;
 use Wikibase\Repo\WikibaseRepo;
 use Wikibase\ItemContent;
 use Wikibase\PropertyContent;
 use Wikibase\Lib\ClaimGuidValidator;
+use Wikibase\Validators\ValidatorErrorLocalizer;
 
 /**
  * @covers Wikibase\Api\ClaimModificationHelper
@@ -111,12 +113,24 @@
        }
 
        private function getNewInstance( $apiMain = null ) {
+               if ($apiMain === null) {
+                       $apiMain = new ApiMain();
+               }
+
+               $snakValidation = new SnakValidationHelper(
+                       $apiMain,
+                       
WikibaseRepo::getDefaultInstance()->getPropertyDataTypeLookup(),
+                       
WikibaseRepo::getDefaultInstance()->getDataTypeFactory(),
+                       new ValidatorErrorLocalizer()
+               );
+
                $claimModificationHelper = new ClaimModificationHelper(
-                       $apiMain ? $apiMain : new ApiMain(),
+                       $apiMain,
                        
WikibaseRepo::getDefaultInstance()->getEntityContentFactory(),
                        
WikibaseRepo::getDefaultInstance()->getSnakConstructionService(),
                        WikibaseRepo::getDefaultInstance()->getEntityIdParser(),
-                       
WikibaseRepo::getDefaultInstance()->getClaimGuidValidator()
+                       
WikibaseRepo::getDefaultInstance()->getClaimGuidValidator(),
+                       $snakValidation
                );
 
                return $claimModificationHelper;

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I80e1489a28cff5f078126b7fd55c4d6400d47221
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Tobias Gritschacher <[email protected]>
Gerrit-Reviewer: Addshore <[email protected]>
Gerrit-Reviewer: Aude <[email protected]>
Gerrit-Reviewer: Daniel Kinzler <[email protected]>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to