Path: blob/master/src/applications/differential/conduit/DifferentialCreateRevisionConduitAPIMethod.php
12256 views
<?php12final class DifferentialCreateRevisionConduitAPIMethod3extends DifferentialConduitAPIMethod {45public function getAPIMethodName() {6return 'differential.createrevision';7}89public function getMethodDescription() {10return pht('Create a new Differential revision.');11}1213public function getMethodStatus() {14return self::METHOD_STATUS_FROZEN;15}1617public function getMethodStatusDescription() {18return pht(19'This method is frozen and will eventually be deprecated. New code '.20'should use "differential.revision.edit" instead.');21}2223protected function defineParamTypes() {24return array(25// TODO: Arcanist passes this; prevent fatals after D4191 until Conduit26// version 7 or newer.27'user' => 'ignored',28'diffid' => 'required diffid',29'fields' => 'required dict',30);31}3233protected function defineReturnType() {34return 'nonempty dict';35}3637protected function defineErrorTypes() {38return array(39'ERR_BAD_DIFF' => pht('Bad diff ID.'),40);41}4243protected function execute(ConduitAPIRequest $request) {44$viewer = $request->getUser();4546$diff = id(new DifferentialDiffQuery())47->setViewer($viewer)48->withIDs(array($request->getValue('diffid')))49->executeOne();50if (!$diff) {51throw new ConduitException('ERR_BAD_DIFF');52}5354$revision = DifferentialRevision::initializeNewRevision($viewer);55$revision->attachReviewers(array());5657$result = $this->applyFieldEdit(58$request,59$revision,60$diff,61$request->getValue('fields', array()),62$message = null);6364$revision_id = $result['object']['id'];6566return array(67'revisionid' => $revision_id,68'uri' => PhabricatorEnv::getURI('/D'.$revision_id),69);70}7172}737475