[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class DifferentialGetRevisionConduitAPIMethod 4 extends DifferentialConduitAPIMethod { 5 6 public function getAPIMethodName() { 7 return 'differential.getrevision'; 8 } 9 10 public function getMethodStatus() { 11 return self::METHOD_STATUS_DEPRECATED; 12 } 13 14 public function getMethodStatusDescription() { 15 return "Replaced by 'differential.query'."; 16 } 17 18 public function getMethodDescription() { 19 return 'Load the content of a revision from Differential.'; 20 } 21 22 public function defineParamTypes() { 23 return array( 24 'revision_id' => 'required id', 25 ); 26 } 27 28 public function defineReturnType() { 29 return 'nonempty dict'; 30 } 31 32 public function defineErrorTypes() { 33 return array( 34 'ERR_BAD_REVISION' => 'No such revision exists.', 35 ); 36 } 37 38 protected function execute(ConduitAPIRequest $request) { 39 $diff = null; 40 41 $revision_id = $request->getValue('revision_id'); 42 $revision = id(new DifferentialRevisionQuery()) 43 ->withIDs(array($revision_id)) 44 ->setViewer($request->getUser()) 45 ->needRelationships(true) 46 ->needReviewerStatus(true) 47 ->executeOne(); 48 49 if (!$revision) { 50 throw new ConduitException('ERR_BAD_REVISION'); 51 } 52 53 $reviewer_phids = array_values($revision->getReviewers()); 54 55 $diffs = id(new DifferentialDiffQuery()) 56 ->setViewer($request->getUser()) 57 ->withRevisionIDs(array($revision_id)) 58 ->needChangesets(true) 59 ->needArcanistProjects(true) 60 ->execute(); 61 $diff_dicts = mpull($diffs, 'getDiffDict'); 62 63 $commit_dicts = array(); 64 $commit_phids = $revision->loadCommitPHIDs(); 65 $handles = id(new PhabricatorHandleQuery()) 66 ->setViewer($request->getUser()) 67 ->withPHIDs($commit_phids) 68 ->execute(); 69 70 foreach ($commit_phids as $commit_phid) { 71 $commit_dicts[] = array( 72 'fullname' => $handles[$commit_phid]->getFullName(), 73 'dateCommitted' => $handles[$commit_phid]->getTimestamp(), 74 ); 75 } 76 77 $field_data = $this->loadCustomFieldsForRevisions( 78 $request->getUser(), 79 array($revision)); 80 81 $dict = array( 82 'id' => $revision->getID(), 83 'phid' => $revision->getPHID(), 84 'authorPHID' => $revision->getAuthorPHID(), 85 'uri' => PhabricatorEnv::getURI('/D'.$revision->getID()), 86 'title' => $revision->getTitle(), 87 'status' => $revision->getStatus(), 88 'statusName' => 89 ArcanistDifferentialRevisionStatus::getNameForRevisionStatus( 90 $revision->getStatus()), 91 'summary' => $revision->getSummary(), 92 'testPlan' => $revision->getTestPlan(), 93 'lineCount' => $revision->getLineCount(), 94 'reviewerPHIDs' => $reviewer_phids, 95 'diffs' => $diff_dicts, 96 'commits' => $commit_dicts, 97 'auxiliary' => idx($field_data, $revision->getPHID(), array()), 98 ); 99 100 return $dict; 101 } 102 103 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Nov 30 09:20:46 2014 | Cross-referenced by PHPXref 0.7.1 |