Christopher Johnson (WMDE) has submitted this change and it was merged.
Change subject: adds sprint.getissprint and sprint.setissprint conduit API
methods
......................................................................
adds sprint.getissprint and sprint.setissprint conduit API methods
Bug: T106816
Change-Id: I21d6da4067a1b89b8ce5e4f841a0a289a2b494a7
---
M .gitignore
M src/__phutil_library_map__.php
M src/conduit/SprintConduitAPIMethod.php
A src/conduit/SprintGetIsSprintConduitAPIMethod.php
A src/conduit/SprintSetIsSprintConduitAPIMethod.php
5 files changed, 120 insertions(+), 1 deletion(-)
Approvals:
Christopher Johnson (WMDE): Verified; Looks good to me, approved
diff --git a/.gitignore b/.gitignore
index e2c639d..b028a5d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,6 @@
.phutil_module_cache
vendor/
/src/tests/clover.xml
+/src/tests/selenium/.idea/
+/src/tests/selenium/phabricator.sprint/.idea/
+/src/tests/selenium/phabricator.sprint/phabricator.sprint.iml
diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
index 84b3327..20d42d8 100644
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -50,6 +50,7 @@
'SprintDataViewController' => 'controller/SprintDataViewController.php',
'SprintDefaultViewCapability' =>
'capability/SprintDefaultViewCapability.php',
'SprintEndDateField' => 'customfield/SprintEndDateField.php',
+ 'SprintGetIsSprintConduitAPIMethod' =>
'conduit/SprintGetIsSprintConduitAPIMethod.php',
'SprintGetTaskProjectHistoryConduitAPIMethod' =>
'conduit/SprintGetTaskProjectHistoryConduitAPIMethod.php',
'SprintHandleIconView' => 'view/SprintHandleIconView.php',
'SprintHistoryController' => 'controller/SprintHistoryController.php',
@@ -68,6 +69,7 @@
'SprintReportBurnUpView' => 'view/reports/SprintReportBurnUpView.php',
'SprintReportController' => 'controller/SprintReportController.php',
'SprintReportOpenTasksView' =>
'view/reports/SprintReportOpenTasksView.php',
+ 'SprintSetIsSprintConduitAPIMethod' =>
'conduit/SprintSetIsSprintConduitAPIMethod.php',
'SprintStats' => 'storage/SprintStats.php',
'SprintStatsTest' => 'tests/SprintStatsTest.php',
'SprintTableView' => 'view/SprintTableView.php',
@@ -82,15 +84,21 @@
),
'function' => array(),
'xmap' => array(
+ 'BoardDataPieView' => 'Phobject',
+ 'BoardDataTableView' => 'Phobject',
'BurndownActionMenuEventListener' => 'PhabricatorEventListener',
+ 'BurndownChartView' => 'Phobject',
+ 'BurndownDataDate' => 'Phobject',
'BurndownException' => 'AphrontUsageException',
'CeleritySprintResources' => 'CelerityResourcesOnDisk',
'DateIterator' => 'Iterator',
+ 'EventTableView' => 'Phobject',
'ProjectOpenTasksView' => 'OpenTasksView',
'SprintApplication' => 'PhabricatorApplication',
'SprintApplicationTest' => 'SprintTestCase',
'SprintBeginDateField' => 'SprintProjectCustomField',
'SprintBoardBatchEditController' => 'ManiphestController',
+ 'SprintBoardCardToken' => 'Phobject',
'SprintBoardColumnDetailController' => 'SprintBoardController',
'SprintBoardColumnEditController' => 'SprintBoardController',
'SprintBoardColumnHideController' => 'SprintBoardController',
@@ -98,6 +106,7 @@
'SprintBoardImportController' => 'SprintBoardController',
'SprintBoardMoveController' => 'SprintBoardController',
'SprintBoardReorderController' => 'SprintBoardController',
+ 'SprintBoardTaskCard' => 'Phobject',
'SprintBoardTaskEditController' => 'ManiphestController',
'SprintBoardViewController' => 'SprintBoardController',
'SprintConduitAPIMethod' => 'ConduitAPIMethod',
@@ -111,11 +120,15 @@
'SprintDataViewController' => 'SprintController',
'SprintDefaultViewCapability' => 'PhabricatorPolicyCapability',
'SprintEndDateField' => 'SprintProjectCustomField',
+ 'SprintGetIsSprintConduitAPIMethod' => 'SprintConduitAPIMethod',
'SprintGetTaskProjectHistoryConduitAPIMethod' => 'SprintConduitAPIMethod',
'SprintHandleIconView' => 'AphrontTagView',
'SprintHistoryController' => 'SprintController',
+ 'SprintHistoryTableView' => 'SprintView',
'SprintIsSprintField' => 'SprintProjectCustomField',
'SprintListController' => 'SprintController',
+ 'SprintListTableView' => 'Phobject',
+ 'SprintPoints' => 'Phobject',
'SprintProjectCustomField' => array(
'PhabricatorProjectCustomField',
'PhabricatorStandardCustomFieldInterface',
@@ -127,6 +140,7 @@
'SprintReportBurnUpView' => 'SprintView',
'SprintReportController' => 'SprintController',
'SprintReportOpenTasksView' => 'SprintView',
+ 'SprintSetIsSprintConduitAPIMethod' => 'SprintConduitAPIMethod',
'SprintStatsTest' => 'SprintTestCase',
'SprintTableView' => 'AphrontView',
'SprintTaskStoryPointsField' => array(
@@ -135,7 +149,9 @@
),
'SprintTestCase' => 'PHPUnit_Framework_TestCase',
'SprintUIObjectBoxView' => 'AphrontView',
+ 'SprintValidator' => 'Phobject',
'SprintView' => 'AphrontView',
+ 'TasksTableView' => 'Phobject',
'UserOpenTasksView' => 'OpenTasksView',
),
));
diff --git a/src/conduit/SprintConduitAPIMethod.php
b/src/conduit/SprintConduitAPIMethod.php
index 4c3a33c..c41a204 100644
--- a/src/conduit/SprintConduitAPIMethod.php
+++ b/src/conduit/SprintConduitAPIMethod.php
@@ -25,7 +25,7 @@
$project_slugs = $project->getSlugs();
$project_slugs = array_values(mpull($project_slugs, 'getSlug'));
-
+ $issprint = $this->isSprint($project->getPHID());
$project_icon = PhabricatorProjectIcon::getAPIName($project->getIcon());
$result[$project->getPHID()] = array(
@@ -37,6 +37,7 @@
'color' => $project->getColor(),
'members' => $member_phids,
'slugs' => $project_slugs,
+ 'issprint' => $issprint,
'dateCreated' => $project->getDateCreated(),
'dateModified' => $project->getDateModified(),
);
@@ -45,4 +46,10 @@
return $result;
}
+ protected function isSprint($project_phid) {
+ $validator = new SprintValidator();
+ $issprint = call_user_func(array($validator, 'checkForSprint'),
+ array($validator, 'isSprint'), $project_phid);
+ return $issprint;
+ }
}
diff --git a/src/conduit/SprintGetIsSprintConduitAPIMethod.php
b/src/conduit/SprintGetIsSprintConduitAPIMethod.php
new file mode 100644
index 0000000..c89c1b4
--- /dev/null
+++ b/src/conduit/SprintGetIsSprintConduitAPIMethod.php
@@ -0,0 +1,31 @@
+<?php
+
+final class SprintGetIsSprintConduitAPIMethod extends SprintConduitAPIMethod {
+
+ public function getAPIMethodName() {
+ return 'sprint.getissprint';
+ }
+
+ public function getMethodDescription() {
+ return pht('Get if a project is a sprint');
+ }
+
+ public function defineParamTypes() {
+ return array(
+ 'project' => 'required string ("PHID")',
+ );
+ }
+
+ public function defineReturnType() {
+ return 'bool';
+ }
+
+ public function defineErrorTypes() {
+ return array();
+ }
+
+ protected function execute(ConduitAPIRequest $request) {
+ $project_phid = $request->getValue('project');
+ return $this->isSprint($project_phid);
+ }
+}
diff --git a/src/conduit/SprintSetIsSprintConduitAPIMethod.php
b/src/conduit/SprintSetIsSprintConduitAPIMethod.php
new file mode 100644
index 0000000..cd7fd91
--- /dev/null
+++ b/src/conduit/SprintSetIsSprintConduitAPIMethod.php
@@ -0,0 +1,62 @@
+<?php
+
+final class SprintSetIsSprintConduitAPIMethod extends SprintConduitAPIMethod {
+
+ public function getAPIMethodName() {
+ return 'sprint.setissprint';
+ }
+
+ public function getMethodDescription() {
+ return pht('Set a project as a sprint');
+ }
+
+ public function defineParamTypes() {
+ return array(
+ 'project' => 'required string ("PHID")',
+ 'issprint' => 'boolean ("1")',
+ );
+ }
+
+ public function defineReturnType() {
+ return 'dict';
+ }
+
+ public function defineErrorTypes() {
+ return array();
+ }
+
+ protected function execute(ConduitAPIRequest $request) {
+ $user = $request->getUser();
+
+ $this->requireApplicationCapability(
+ ProjectCreateProjectsCapability::CAPABILITY,
+ $user);
+
+ $xactions = array();
+
+ $xactions[] = id(new PhabricatorProjectTransaction())
+ ->setTransactionType(PhabricatorTransactions::TYPE_CUSTOMFIELD)
+ ->setMetadataValue('customfield:key', 'isdc:sprint:issprint')
+ ->setOldValue(null)
+ ->setNewValue($request->getValue('issprint'));
+
+ $editor = id(new PhabricatorProjectTransactionEditor())
+ ->setActor($user)
+ ->setContinueOnNoEffect(true)
+ ->setContentSourceFromConduitRequest($request);
+
+ $project = id(new PhabricatorProjectQuery())
+ ->setViewer($user)
+ ->withPHIDS(array($request->getValue('project')))
+ ->needSlugs(true)
+ ->executeOne();
+
+ if (!$project) {
+ return null;
+ } else {
+ $editor->applyTransactions($project, $xactions);
+ return $this->buildProjectInfoDictionary($project);
+ }
+ }
+
+}
--
To view, visit https://gerrit.wikimedia.org/r/226965
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I21d6da4067a1b89b8ce5e4f841a0a289a2b494a7
Gerrit-PatchSet: 2
Gerrit-Project: phabricator/extensions/Sprint
Gerrit-Branch: master
Gerrit-Owner: Christopher Johnson (WMDE) <[email protected]>
Gerrit-Reviewer: Christopher Johnson (WMDE) <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits