Path: blob/master/src/applications/differential/conduit/DifferentialGetRevisionConduitAPIMethod.php
12256 views
<?php12final class DifferentialGetRevisionConduitAPIMethod3extends DifferentialConduitAPIMethod {45public function getAPIMethodName() {6return 'differential.getrevision';7}89public function getMethodStatus() {10return self::METHOD_STATUS_DEPRECATED;11}1213public function getMethodStatusDescription() {14return pht("Replaced by '%s'.", 'differential.query');15}1617public function getMethodDescription() {18return pht('Load the content of a revision from Differential.');19}2021protected function defineParamTypes() {22return array(23'revision_id' => 'required id',24);25}2627protected function defineReturnType() {28return 'nonempty dict';29}3031protected function defineErrorTypes() {32return array(33'ERR_BAD_REVISION' => pht('No such revision exists.'),34);35}3637protected function execute(ConduitAPIRequest $request) {38$diff = null;3940$revision_id = $request->getValue('revision_id');41$revision = id(new DifferentialRevisionQuery())42->withIDs(array($revision_id))43->setViewer($request->getUser())44->needReviewers(true)45->needCommitPHIDs(true)46->executeOne();4748if (!$revision) {49throw new ConduitException('ERR_BAD_REVISION');50}5152$reviewer_phids = $revision->getReviewerPHIDs();5354$diffs = id(new DifferentialDiffQuery())55->setViewer($request->getUser())56->withRevisionIDs(array($revision_id))57->needChangesets(true)58->execute();59$diff_dicts = mpull($diffs, 'getDiffDict');6061$commit_dicts = array();62$commit_phids = $revision->getCommitPHIDs();63$handles = id(new PhabricatorHandleQuery())64->setViewer($request->getUser())65->withPHIDs($commit_phids)66->execute();6768foreach ($commit_phids as $commit_phid) {69$commit_dicts[] = array(70'fullname' => $handles[$commit_phid]->getFullName(),71'dateCommitted' => $handles[$commit_phid]->getTimestamp(),72);73}7475$field_data = $this->loadCustomFieldsForRevisions(76$request->getUser(),77array($revision));7879$dict = array(80'id' => $revision->getID(),81'phid' => $revision->getPHID(),82'authorPHID' => $revision->getAuthorPHID(),83'uri' => PhabricatorEnv::getURI('/D'.$revision->getID()),84'title' => $revision->getTitle(),85'status' => $revision->getLegacyRevisionStatus(),86'statusName' => $revision->getStatusDisplayName(),87'summary' => $revision->getSummary(),88'testPlan' => $revision->getTestPlan(),89'lineCount' => $revision->getLineCount(),90'reviewerPHIDs' => $reviewer_phids,91'diffs' => $diff_dicts,92'commits' => $commit_dicts,93'auxiliary' => idx($field_data, $revision->getPHID(), array()),94);9596return $dict;97}9899}100101102