Path: blob/master/src/applications/badges/controller/PhabricatorBadgesCommentController.php
12256 views
<?php12final class PhabricatorBadgesCommentController3extends PhabricatorBadgesController {45public function handleRequest(AphrontRequest $request) {6$viewer = $request->getViewer();7$id = $request->getURIData('id');89if (!$request->isFormPost()) {10return new Aphront400Response();11}1213$badge = id(new PhabricatorBadgesQuery())14->setViewer($viewer)15->withIDs(array($id))16->executeOne();17if (!$badge) {18return new Aphront404Response();19}2021$is_preview = $request->isPreviewRequest();22$draft = PhabricatorDraft::buildFromRequest($request);2324$view_uri = $this->getApplicationURI('view/'.$badge->getID());2526$xactions = array();27$xactions[] = id(new PhabricatorBadgesTransaction())28->setTransactionType(PhabricatorTransactions::TYPE_COMMENT)29->attachComment(30id(new PhabricatorBadgesTransactionComment())31->setContent($request->getStr('comment')));3233$editor = id(new PhabricatorBadgesEditor())34->setActor($viewer)35->setContinueOnNoEffect($request->isContinueRequest())36->setContentSourceFromRequest($request)37->setIsPreview($is_preview);3839try {40$xactions = $editor->applyTransactions($badge, $xactions);41} catch (PhabricatorApplicationTransactionNoEffectException $ex) {42return id(new PhabricatorApplicationTransactionNoEffectResponse())43->setCancelURI($view_uri)44->setException($ex);45}4647if ($draft) {48$draft->replaceOrDelete();49}5051if ($request->isAjax() && $is_preview) {52return id(new PhabricatorApplicationTransactionResponse())53->setObject($badge)54->setViewer($viewer)55->setTransactions($xactions)56->setIsPreview($is_preview);57} else {58return id(new AphrontRedirectResponse())59->setURI($view_uri);60}61}6263}646566