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