Tobias Gritschacher has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/78247


Change subject: Move logic to get claim to ClaimModificationHelper
......................................................................

Move logic to get claim to ClaimModificationHelper

Change-Id: Id590af58351290bd2298d6090d99b51b7edaaf5b
---
M repo/includes/api/ClaimModificationHelper.php
M repo/includes/api/RemoveQualifiers.php
M repo/includes/api/RemoveReferences.php
M repo/includes/api/SetClaimValue.php
M repo/includes/api/SetQualifier.php
M repo/includes/api/SetReference.php
M repo/includes/api/SetStatementRank.php
7 files changed, 27 insertions(+), 49 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/47/78247/1

diff --git a/repo/includes/api/ClaimModificationHelper.php 
b/repo/includes/api/ClaimModificationHelper.php
index 7dbd697..67b82ee 100644
--- a/repo/includes/api/ClaimModificationHelper.php
+++ b/repo/includes/api/ClaimModificationHelper.php
@@ -7,6 +7,7 @@
 use ApiBase, MWException;
 use Wikibase\EntityContent;
 use Wikibase\Claim;
+use Wikibase\Claims;
 use Wikibase\Summary;
 use Wikibase\Lib\Serializers\SerializerFactory;
 use Wikibase\Entity;
@@ -167,6 +168,24 @@
        /**
         * @since 0.4
         *
+        * @param string $claimGuid
+        * @param Entity $entity
+        *
+        * @return Claim
+        */
+       public function getClaimFromEntity( $claimGuid, Entity $entity ) {
+               $claims = new Claims( $entity->getClaims() );
+
+               if ( !$claims->hasClaimWithGuid( $claimGuid ) ) {
+                       $this->dieUsage( 'Could not find the claim' , 
'no-such-claim' );
+               }
+
+               return $claims->getClaimWithGuid( $claimGuid );
+       }
+
+       /**
+        * @since 0.4
+        *
         * @param array $params
         * @param EntityId $propertyId
         *
@@ -257,6 +276,7 @@
                return array(
                        array( 'code' => 'invalid-guid', 'info' => 
$this->apiMain->msg( 'wikibase-api-invalid-guid' )->text() ),
                        array( 'code' => 'no-such-entity', 'info' => 
$this->apiMain->msg( 'wikibase-api-no-such-entity' )->text() ),
+                       array( 'code' => 'no-such-claim', 'info' => 
$this->apiMain->msg( 'wikibase-api-no-such-claim' )->text() ),
                        array( 'code' => 'invalid-snak', 'info' => 
$this->apiMain->msg( 'wikibase-api-invalid-snak' )->text() ),
                        array( 'code' => 'invalid-entity-id', 'info' => 
$this->apiMain->msg( 'wikibase-api-invalid-entity-id' )->text() ),
                );
diff --git a/repo/includes/api/RemoveQualifiers.php 
b/repo/includes/api/RemoveQualifiers.php
index 32a012a..10f49a8 100644
--- a/repo/includes/api/RemoveQualifiers.php
+++ b/repo/includes/api/RemoveQualifiers.php
@@ -60,13 +60,8 @@
                $entity = $entityContent->getEntity();
                $summary = $this->claimModificationHelper->createSummary( 
$params, $this );
 
-               $claims = new Claims( $entity->getClaims() );
+               $claim = $this->claimModificationHelper->getClaimFromEntity( 
$claimGuid, $entity );
 
-               if ( !$claims->hasClaimWithGuid( $claimGuid ) ) {
-                       $this->dieUsage( 'Could not find the claim' , 
'no-such-claim' );
-               }
-
-               $claim = $claims->getClaimWithGuid( $claimGuid );
                $qualifierHashes = $this->getQualifierHashesFromParams( 
$params, $claim );
 
                $changeOps = new ChangeOps();
@@ -167,7 +162,6 @@
                        parent::getPossibleErrors(),
                        $this->claimModificationHelper->getPossibleErrors(),
                        array(
-                               array( 'code' => 'no-such-claim', 'info' => 
$this->msg( 'wikibase-api-no-such-claim' )->text() ),
                                array( 'code' => 'no-such-qualifier', 'info' => 
$this->msg( 'wikibase-api-no-such-qualifer' )->text() ),
                        )
                );
diff --git a/repo/includes/api/RemoveReferences.php 
b/repo/includes/api/RemoveReferences.php
index 206fd8d..3a6551e 100644
--- a/repo/includes/api/RemoveReferences.php
+++ b/repo/includes/api/RemoveReferences.php
@@ -60,13 +60,7 @@
                $entity = $entityContent->getEntity();
                $summary = $this->claimModificationHelper->createSummary( 
$params, $this );
 
-               $claims = new Claims( $entity->getClaims() );
-
-               if ( !$claims->hasClaimWithGuid( $claimGuid ) ) {
-                       $this->dieUsage( 'Could not find the claim' , 
'no-such-claim' );
-               }
-
-               $claim = $claims->getClaimWithGuid( $claimGuid );
+               $claim = $this->claimModificationHelper->getClaimFromEntity( 
$claimGuid, $entity );
 
                if ( ! ( $claim instanceof Statement ) ) {
                        $this->dieUsage( 'The referenced claim is not a 
statement and thus cannot have references', 'not-statement' );
@@ -189,7 +183,6 @@
                        parent::getPossibleErrors(),
                        $this->claimModificationHelper->getPossibleErrors(),
                        array(
-                               array( 'code' => 'no-such-claim', 'info' => 
$this->msg( 'wikibase-api-no-such-claim' )->text() ),
                                array( 'code' => 'no-such-reference', 'info' => 
$this->msg( 'wikibase-api-no-such-reference' )->text() ),
                                array( 'code' => 'not-statement', 'info' => 
$this->msg( 'wikibase-api-not-statement' )->text() ),
                        )
diff --git a/repo/includes/api/SetClaimValue.php 
b/repo/includes/api/SetClaimValue.php
index 251f8e7..b845760 100644
--- a/repo/includes/api/SetClaimValue.php
+++ b/repo/includes/api/SetClaimValue.php
@@ -56,13 +56,9 @@
                $entityTitle = $this->claimModificationHelper->getEntityTitle( 
$entityId );
                $entityContent = $this->getEntityContent( $entityTitle );
                $entity = $entityContent->getEntity();
-               $claims = new Claims( $entity->getClaims() );
                $claimGuid = $params['claim'];
-               $claim = $claims->getClaimWithGuid( $claimGuid );
 
-               if ( $claim === null ) {
-                       $this->dieUsage( "No claim for GUID: $claimGuid" , 
'no-such-claim' );
-               }
+               $claim = $this->claimModificationHelper->getClaimFromEntity( 
$claimGuid, $entity );
 
                $snak = $this->claimModificationHelper->getSnakInstance( 
$params, $claim->getMainSnak()->getPropertyId() );
 
@@ -127,9 +123,7 @@
                return array_merge(
                        parent::getPossibleErrors(),
                        $this->claimModificationHelper->getPossibleErrors(),
-                       array(
-                               array( 'code' => 'no-such-claim', 'info' => 
$this->msg( 'wikibase-api-no-such-claim' )->text() ),
-                       )
+                       array()
                );
        }
 
diff --git a/repo/includes/api/SetQualifier.php 
b/repo/includes/api/SetQualifier.php
index be96a71..3809b43 100644
--- a/repo/includes/api/SetQualifier.php
+++ b/repo/includes/api/SetQualifier.php
@@ -59,14 +59,7 @@
                $entity = $entityContent->getEntity();
                $summary = $this->claimModificationHelper->createSummary( 
$params, $this );
 
-               $claimGuid = $params['claim'];
-               $claims = new Claims( $entity->getClaims() );
-
-               if ( !$claims->hasClaimWithGuid( $claimGuid ) ) {
-                       $this->dieUsage( 'Could not find the claim' , 
'no-such-claim' );
-               }
-
-               $claim = $claims->getClaimWithGuid( $claimGuid );
+               $claim = $this->claimModificationHelper->getClaimFromEntity( 
$params['claim'], $entity );
 
                if ( isset( $params['snakhash'] ) ) {
                        $this->validateReferenceHash( $claim, 
$params['snakhash'] );
@@ -225,7 +218,6 @@
                        $this->claimModificationHelper->getPossibleErrors(),
                        array(
                                array( 'code' => 'param-missing', 'info' => 
$this->msg( 'wikibase-api-param-missing' )->text() ),
-                               array( 'code' => 'no-such-claim', 'info' => 
$this->msg( 'wikibase-api-no-such-claim' )->text() ),
                        )
                );
        }
diff --git a/repo/includes/api/SetReference.php 
b/repo/includes/api/SetReference.php
index fe0a22c..1d5780a 100644
--- a/repo/includes/api/SetReference.php
+++ b/repo/includes/api/SetReference.php
@@ -60,14 +60,7 @@
                $entity = $entityContent->getEntity();
                $summary = $this->claimModificationHelper->createSummary( 
$params, $this );
 
-               $claimGuid = $params['statement'];
-               $claims = new Claims( $entity->getClaims() );
-
-               if ( !$claims->hasClaimWithGuid( $claimGuid ) ) {
-                       $this->dieUsage( 'Could not find the claim' , 
'no-such-claim' );
-               }
-
-               $claim = $claims->getClaimWithGuid( $claimGuid );
+               $claim = $this->claimModificationHelper->getClaimFromEntity( 
$params['statement'], $entity );
 
                if ( ! ( $claim instanceof Statement ) ) {
                        $this->dieUsage( 'The referenced claim is not a 
statement and thus cannot have references', 'not-statement' );
diff --git a/repo/includes/api/SetStatementRank.php 
b/repo/includes/api/SetStatementRank.php
index df10479..18c7734 100644
--- a/repo/includes/api/SetStatementRank.php
+++ b/repo/includes/api/SetStatementRank.php
@@ -60,14 +60,7 @@
                $entity = $entityContent->getEntity();
                $summary = $this->claimModificationHelper->createSummary( 
$params, $this );
 
-               $claimGuid = $params['statement'];
-               $claims = new Claims( $entity->getClaims() );
-
-               if ( !$claims->hasClaimWithGuid( $claimGuid ) ) {
-                       $this->dieUsage( 'Could not find the statement' , 
'no-such-statement' );
-               }
-
-               $claim = $claims->getClaimWithGuid( $claimGuid );
+               $claim = $this->claimModificationHelper->getClaimFromEntity( 
$params['statement'], $entity );
 
                if ( ! ( $claim instanceof Statement ) ) {
                        $this->dieUsage( 'The referenced claim is not a 
statement and thus cannot have a rank', 'not-statement' );
@@ -147,7 +140,6 @@
                        parent::getPossibleErrors(),
                        $this->claimModificationHelper->getPossibleErrors(),
                        array(
-                               array( 'code' => 'no-such-statement', 'info' => 
$this->msg( 'wikibase-api-no-such-statement' )->text() ),
                                array( 'code' => 'not-statement', 'info' => 
$this->msg( 'wikibase-api-not-statement' )->text() ),
                        )
                );

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id590af58351290bd2298d6090d99b51b7edaaf5b
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Tobias Gritschacher <tobias.gritschac...@wikimedia.de>

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

Reply via email to