jenkins-bot has submitted this change and it was merged.
Change subject: Move claimGuidValidator into ClaimModificationHelper
......................................................................
Move claimGuidValidator into ClaimModificationHelper
Change-Id: I76c1c9a0ccbe69b22daf95ee0cb10b648df17d65
---
M repo/includes/api/ClaimModificationHelper.php
M repo/includes/api/CreateClaim.php
M repo/includes/api/ModifyClaim.php
M repo/includes/api/SetClaimValue.php
4 files changed, 39 insertions(+), 10 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 8f6d30a..9894f8a 100644
--- a/repo/includes/api/ClaimModificationHelper.php
+++ b/repo/includes/api/ClaimModificationHelper.php
@@ -15,6 +15,7 @@
use Wikibase\EntityId;
use Wikibase\Property;
use Wikibase\EntityContentFactory;
+use Wikibase\Lib\ClaimGuidValidator;
/**
* Helper class for modifying claims
@@ -76,6 +77,13 @@
/**
* @since 0.4
*
+ * @var ClaimGuidValidator
+ */
+ protected $claimGuidValidator;
+
+ /**
+ * @since 0.4
+ *
* @param \ApiMain $apiMain
* @param EntityContentFactory $entityContentFactory
* @param SnakConstructionService $snakConstructionService
@@ -85,12 +93,14 @@
\ApiMain $apiMain,
EntityContentFactory $entityContentFactory,
SnakConstructionService $snakConstructionService,
- EntityIdParser $entityIdParser
+ EntityIdParser $entityIdParser,
+ ClaimGuidValidator $claimGuidValidator
) {
$this->apiMain = $apiMain;
$this->entityContentFactory = $entityContentFactory;
$this->snakConstructionService = $snakConstructionService;
$this->entityIdParser = $entityIdParser;
+ $this->claimGuidValidator = $claimGuidValidator;
}
/**
@@ -116,6 +126,7 @@
* @param EntityId $entityId
*
* @return \Title
+ *
* TODO: this could go into a ApiWikibaseHelper as it is useful for
almost all API modules
*/
public function getEntityTitle( EntityId $entityId ) {
@@ -131,6 +142,17 @@
/**
* @since 0.4
*
+ * @param string $claimGuid
+ *
+ * @return bool
+ */
+ public function validateClaimGuid( $claimGuid ) {
+ return $this->claimGuidValidator->validate( $claimGuid );
+ }
+
+ /**
+ * @since 0.4
+ *
* @param array $params
* @param EntityId $propertyId
*
diff --git a/repo/includes/api/CreateClaim.php
b/repo/includes/api/CreateClaim.php
index faf926e..ef40328 100644
--- a/repo/includes/api/CreateClaim.php
+++ b/repo/includes/api/CreateClaim.php
@@ -10,6 +10,7 @@
use Wikibase\ChangeOpClaim;
use Wikibase\Validators\ValidatorErrorLocalizer;
use ValueParsers\ParseException;
+use Wikibase\Lib\ClaimGuidValidator;
/**
* API module for creating claims.
@@ -72,11 +73,16 @@
new ValidatorErrorLocalizer()
);
+ // @todo generalize handling of settings in api modules
+ $settings = WikibaseRepo::getDefaultInstance()->getSettings();
+ $entityPrefixes = $settings->getSetting( 'entityPrefixes' );
+
$this->claimModificationHelper = new ClaimModificationHelper(
$mainModule,
WikibaseRepo::getDefaultInstance()->getEntityContentFactory(),
WikibaseRepo::getDefaultInstance()->getSnakConstructionService(),
- WikibaseRepo::getDefaultInstance()->getEntityIdParser()
+ WikibaseRepo::getDefaultInstance()->getEntityIdParser(),
+ new ClaimGuidValidator( $entityPrefixes )
);
}
diff --git a/repo/includes/api/ModifyClaim.php
b/repo/includes/api/ModifyClaim.php
index 9d2f71d..c61756b 100644
--- a/repo/includes/api/ModifyClaim.php
+++ b/repo/includes/api/ModifyClaim.php
@@ -1,6 +1,7 @@
<?php
namespace Wikibase\Api;
+use ApiMain;
use ApiBase, MWException;
use Wikibase\EntityContent;
use Wikibase\Claim;
diff --git a/repo/includes/api/SetClaimValue.php
b/repo/includes/api/SetClaimValue.php
index 57f7524..2669e3e 100644
--- a/repo/includes/api/SetClaimValue.php
+++ b/repo/includes/api/SetClaimValue.php
@@ -8,8 +8,8 @@
use Wikibase\Entity;
use Wikibase\Claims;
use Wikibase\ChangeOpClaim;
-use Wikibase\Lib\ClaimGuidValidator;
use Wikibase\Repo\WikibaseRepo;
+use Wikibase\Lib\ClaimGuidValidator;
/**
* API module for setting the DataValue contained by the main snak of a claim.
@@ -57,11 +57,16 @@
public function __construct( ApiMain $mainModule, $moduleName,
$modulePrefix = '' ) {
parent::__construct( $mainModule, $moduleName, $modulePrefix );
+ // @todo generalize handling of settings in api modules
+ $settings = WikibaseRepo::getDefaultInstance()->getSettings();
+ $entityPrefixes = $settings->getSetting( 'entityPrefixes' );
+
$this->claimModificationHelper = new ClaimModificationHelper(
$mainModule,
WikibaseRepo::getDefaultInstance()->getEntityContentFactory(),
WikibaseRepo::getDefaultInstance()->getSnakConstructionService(),
- WikibaseRepo::getDefaultInstance()->getEntityIdParser()
+ WikibaseRepo::getDefaultInstance()->getEntityIdParser(),
+ new ClaimGuidValidator( $entityPrefixes )
);
}
@@ -111,12 +116,7 @@
* @param array $params
*/
protected function validateParameters( array $params ) {
- // @todo generalize handling of settings in api modules
- $settings = WikibaseRepo::getDefaultInstance()->getSettings();
- $entityPrefixes = $settings->getSetting( 'entityPrefixes' );
- $claimGuidValidator = new ClaimGuidValidator( $entityPrefixes );
-
- if ( !( $claimGuidValidator->validate( $params['claim'] ) ) ) {
+ if ( !( $this->claimModificationHelper->validateClaimGuid(
$params['claim'] ) ) ) {
$this->dieUsage( 'Invalid claim guid' , 'invalid-guid'
);
}
}
--
To view, visit https://gerrit.wikimedia.org/r/76915
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I76c1c9a0ccbe69b22daf95ee0cb10b648df17d65
Gerrit-PatchSet: 7
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: Tobias Gritschacher <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits