Path: blob/master/src/applications/differential/controller/DifferentialRevisionEditController.php
12256 views
<?php12final class DifferentialRevisionEditController3extends DifferentialController {45public function handleRequest(AphrontRequest $request) {6$viewer = $this->getViewer();78// If we have a Diff ID, this is an "/attach/123/to/456/" action. The9// user just created a diff and is trying to use it to create or update10// a revision.11$diff_id = $request->getURIData('diffID');1213if ($diff_id) {14$diff = id(new DifferentialDiffQuery())15->setViewer($viewer)16->withIDs(array($diff_id))17->executeOne();18if (!$diff) {19return new Aphront404Response();20}2122if ($diff->getRevisionID()) {23$revision = $diff->getRevision();24return $this->newDialog()25->setTitle(pht('Diff Already Attached'))26->appendParagraph(27pht(28'This diff is already attached to a revision.'))29->addCancelButton($revision->getURI(), pht('Continue'));30}31} else {32$diff = null;33}3435$revision_id = $request->getURIData('id');36if (!$diff && !$revision_id) {37return $this->newDialog()38->setTitle(pht('Diff Required'))39->appendParagraph(40pht(41'You can not create a revision without a diff.'))42->addCancelButton($this->getApplicationURI());43}4445$engine = id(new DifferentialRevisionEditEngine())46->setController($this);4748if ($diff) {49$engine->setDiff($diff);50}5152return $engine->buildResponse();53}5455}565758