3 final class PonderQuestionCommentController
extends PonderController
{
5 public function handleRequest(AphrontRequest
$request) {
6 $viewer = $request->getViewer();
7 $id = $request->getURIData('id');
9 if (!$request->isFormPost()) {
10 return new Aphront400Response();
13 $question = id(new PonderQuestionQuery())
18 return new Aphront404Response();
21 $is_preview = $request->isPreviewRequest();
23 $qid = $question->getID();
24 $view_uri = "/Q{$qid}";
27 $xactions[] = id(new PonderQuestionTransaction())
28 ->setTransactionType(PhabricatorTransactions
::TYPE_COMMENT
)
30 id(new PonderQuestionTransactionComment())
31 ->setContent($request->getStr('comment')));
33 $editor = id(new PonderQuestionEditor())
35 ->setContinueOnNoEffect($request->isContinueRequest())
36 ->setContentSourceFromRequest($request)
37 ->setIsPreview($is_preview);
40 $xactions = $editor->applyTransactions($question, $xactions);
41 } catch (PhabricatorApplicationTransactionNoEffectException
$ex) {
42 return id(new PhabricatorApplicationTransactionNoEffectResponse())
43 ->setCancelURI($view_uri)
47 if ($request->isAjax() && $is_preview) {
48 return id(new PhabricatorApplicationTransactionResponse())
49 ->setObject($question)
51 ->setTransactions($xactions)
52 ->setIsPreview($is_preview);
54 return id(new AphrontRedirectResponse())