[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class DifferentialUpdateRevisionConduitAPIMethod 4 extends DifferentialConduitAPIMethod { 5 6 public function getAPIMethodName() { 7 return 'differential.updaterevision'; 8 } 9 10 public function getMethodDescription() { 11 return pht('Update a Differential revision.'); 12 } 13 14 public function defineParamTypes() { 15 return array( 16 'id' => 'required revisionid', 17 'diffid' => 'required diffid', 18 'fields' => 'required dict', 19 'message' => 'required string', 20 ); 21 } 22 23 public function defineReturnType() { 24 return 'nonempty dict'; 25 } 26 27 public function defineErrorTypes() { 28 return array( 29 'ERR_BAD_DIFF' => 'Bad diff ID.', 30 'ERR_BAD_REVISION' => 'Bad revision ID.', 31 'ERR_WRONG_USER' => 'You are not the author of this revision.', 32 'ERR_CLOSED' => 'This revision has already been closed.', 33 ); 34 } 35 36 protected function execute(ConduitAPIRequest $request) { 37 $viewer = $request->getUser(); 38 39 $diff = id(new DifferentialDiffQuery()) 40 ->setViewer($viewer) 41 ->withIDs(array($request->getValue('diffid'))) 42 ->executeOne(); 43 if (!$diff) { 44 throw new ConduitException('ERR_BAD_DIFF'); 45 } 46 47 $revision = id(new DifferentialRevisionQuery()) 48 ->setViewer($request->getUser()) 49 ->withIDs(array($request->getValue('id'))) 50 ->needReviewerStatus(true) 51 ->needActiveDiffs(true) 52 ->requireCapabilities( 53 array( 54 PhabricatorPolicyCapability::CAN_VIEW, 55 PhabricatorPolicyCapability::CAN_EDIT, 56 )) 57 ->executeOne(); 58 if (!$revision) { 59 throw new ConduitException('ERR_BAD_REVISION'); 60 } 61 62 if ($revision->getStatus() == ArcanistDifferentialRevisionStatus::CLOSED) { 63 throw new ConduitException('ERR_CLOSED'); 64 } 65 66 $this->applyFieldEdit( 67 $request, 68 $revision, 69 $diff, 70 $request->getValue('fields', array()), 71 $request->getValue('message')); 72 73 return array( 74 'revisionid' => $revision->getID(), 75 'uri' => PhabricatorEnv::getURI('/D'.$revision->getID()), 76 ); 77 } 78 79 }
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 |