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) <christopher.john...@wikimedia.de>
Gerrit-Reviewer: Christopher Johnson (WMDE) <christopher.john...@wikimedia.de>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to