diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php index adfba5e543..a164adf5aa 100644 --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -94,6 +94,7 @@ phutil_register_library_map(array( 'ConduitAPI_conduit_ping_Method' => 'applications/conduit/method/conduit/ping', 'ConduitAPI_daemon_launched_Method' => 'applications/conduit/method/daemon/launched', 'ConduitAPI_daemon_log_Method' => 'applications/conduit/method/daemon/log', + 'ConduitAPI_differential_createcomment_Method' => 'applications/conduit/method/differential/createcomment', 'ConduitAPI_differential_creatediff_Method' => 'applications/conduit/method/differential/creatediff', 'ConduitAPI_differential_createrevision_Method' => 'applications/conduit/method/differential/createrevision', 'ConduitAPI_differential_find_Method' => 'applications/conduit/method/differential/find', @@ -819,6 +820,7 @@ phutil_register_library_map(array( 'ConduitAPI_conduit_ping_Method' => 'ConduitAPIMethod', 'ConduitAPI_daemon_launched_Method' => 'ConduitAPIMethod', 'ConduitAPI_daemon_log_Method' => 'ConduitAPIMethod', + 'ConduitAPI_differential_createcomment_Method' => 'ConduitAPIMethod', 'ConduitAPI_differential_creatediff_Method' => 'ConduitAPIMethod', 'ConduitAPI_differential_createrevision_Method' => 'ConduitAPIMethod', 'ConduitAPI_differential_find_Method' => 'ConduitAPIMethod', diff --git a/src/applications/conduit/method/differential/createcomment/ConduitAPI_differential_createcomment_Method.php b/src/applications/conduit/method/differential/createcomment/ConduitAPI_differential_createcomment_Method.php new file mode 100644 index 0000000000..062c76f58b --- /dev/null +++ b/src/applications/conduit/method/differential/createcomment/ConduitAPI_differential_createcomment_Method.php @@ -0,0 +1,70 @@ + 'required revisionid', + 'message' => 'required string', + ); + } + + public function defineReturnType() { + return 'nonempty dict'; + } + + public function defineErrorTypes() { + return array( + 'ERR_BAD_REVISION' => 'Bad revision ID.', + ); + } + + protected function execute(ConduitAPIRequest $request) { + $revision = id(new DifferentialRevision())->load( + $request->getValue('revision_id')); + if (!$revision) { + throw new ConduitException('ERR_BAD_REVISION'); + } + + $content_source = PhabricatorContentSource::newForSource( + PhabricatorContentSource::SOURCE_CONDUIT, + array()); + + $editor = new DifferentialCommentEditor( + $revision, + $request->getUser()->getPHID(), + DifferentialAction::ACTION_COMMENT); + $editor->setContentSource($content_source); + $editor->setMessage($request->getValue('message')); + $editor->save(); + + return array( + 'revisionid' => $revision->getID(), + 'uri' => PhabricatorEnv::getURI('/D'.$revision->getID()), + ); + } + +} diff --git a/src/applications/conduit/method/differential/createcomment/__init__.php b/src/applications/conduit/method/differential/createcomment/__init__.php new file mode 100644 index 0000000000..921d030721 --- /dev/null +++ b/src/applications/conduit/method/differential/createcomment/__init__.php @@ -0,0 +1,20 @@ +