Correct a parameter order swap in "diffusion.historyquery" for Mercurial
[phabricator.git] / src / applications / ponder / controller / PonderQuestionCommentController.php
blobd50cd637c47d5efc9dcc290bad405d5dea819bf4
1 <?php
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())
14 ->setViewer($viewer)
15 ->withIDs(array($id))
16 ->executeOne();
17 if (!$question) {
18 return new Aphront404Response();
21 $is_preview = $request->isPreviewRequest();
23 $qid = $question->getID();
24 $view_uri = "/Q{$qid}";
26 $xactions = array();
27 $xactions[] = id(new PonderQuestionTransaction())
28 ->setTransactionType(PhabricatorTransactions::TYPE_COMMENT)
29 ->attachComment(
30 id(new PonderQuestionTransactionComment())
31 ->setContent($request->getStr('comment')));
33 $editor = id(new PonderQuestionEditor())
34 ->setActor($viewer)
35 ->setContinueOnNoEffect($request->isContinueRequest())
36 ->setContentSourceFromRequest($request)
37 ->setIsPreview($is_preview);
39 try {
40 $xactions = $editor->applyTransactions($question, $xactions);
41 } catch (PhabricatorApplicationTransactionNoEffectException $ex) {
42 return id(new PhabricatorApplicationTransactionNoEffectResponse())
43 ->setCancelURI($view_uri)
44 ->setException($ex);
47 if ($request->isAjax() && $is_preview) {
48 return id(new PhabricatorApplicationTransactionResponse())
49 ->setObject($question)
50 ->setViewer($viewer)
51 ->setTransactions($xactions)
52 ->setIsPreview($is_preview);
53 } else {
54 return id(new AphrontRedirectResponse())
55 ->setURI($view_uri);