mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-30 09:20:58 +01:00
Add remarkup.process conduit method
Summary: This exposes a few remarkup engines over conduit. Test Plan: Local conduit console, and playing with 'cat example.json | arc call-conduit remarkup.process' Reviewers: epriestley Reviewed By: epriestley CC: aran, epriestley Differential Revision: https://secure.phabricator.com/D1551
This commit is contained in:
parent
a15130b47c
commit
8df14b8505
3 changed files with 90 additions and 0 deletions
|
@ -145,6 +145,7 @@ phutil_register_library_map(array(
|
||||||
'ConduitAPI_phriction_info_Method' => 'applications/conduit/method/phriction/info',
|
'ConduitAPI_phriction_info_Method' => 'applications/conduit/method/phriction/info',
|
||||||
'ConduitAPI_project_Method' => 'applications/conduit/method/project/base',
|
'ConduitAPI_project_Method' => 'applications/conduit/method/project/base',
|
||||||
'ConduitAPI_project_query_Method' => 'applications/conduit/method/project/query',
|
'ConduitAPI_project_query_Method' => 'applications/conduit/method/project/query',
|
||||||
|
'ConduitAPI_remarkup_process_Method' => 'applications/conduit/method/remarkup/process',
|
||||||
'ConduitAPI_slowvote_info_Method' => 'applications/conduit/method/slowvote/info',
|
'ConduitAPI_slowvote_info_Method' => 'applications/conduit/method/slowvote/info',
|
||||||
'ConduitAPI_user_Method' => 'applications/conduit/method/user/base',
|
'ConduitAPI_user_Method' => 'applications/conduit/method/user/base',
|
||||||
'ConduitAPI_user_find_Method' => 'applications/conduit/method/user/find',
|
'ConduitAPI_user_find_Method' => 'applications/conduit/method/user/find',
|
||||||
|
@ -949,6 +950,7 @@ phutil_register_library_map(array(
|
||||||
'ConduitAPI_phriction_info_Method' => 'ConduitAPI_phriction_Method',
|
'ConduitAPI_phriction_info_Method' => 'ConduitAPI_phriction_Method',
|
||||||
'ConduitAPI_project_Method' => 'ConduitAPIMethod',
|
'ConduitAPI_project_Method' => 'ConduitAPIMethod',
|
||||||
'ConduitAPI_project_query_Method' => 'ConduitAPI_project_Method',
|
'ConduitAPI_project_query_Method' => 'ConduitAPI_project_Method',
|
||||||
|
'ConduitAPI_remarkup_process_Method' => 'ConduitAPIMethod',
|
||||||
'ConduitAPI_slowvote_info_Method' => 'ConduitAPIMethod',
|
'ConduitAPI_slowvote_info_Method' => 'ConduitAPIMethod',
|
||||||
'ConduitAPI_user_Method' => 'ConduitAPIMethod',
|
'ConduitAPI_user_Method' => 'ConduitAPIMethod',
|
||||||
'ConduitAPI_user_find_Method' => 'ConduitAPI_user_Method',
|
'ConduitAPI_user_find_Method' => 'ConduitAPI_user_Method',
|
||||||
|
@ -1040,6 +1042,7 @@ phutil_register_library_map(array(
|
||||||
'DiffusionContainsQuery' => 'DiffusionQuery',
|
'DiffusionContainsQuery' => 'DiffusionQuery',
|
||||||
'DiffusionController' => 'PhabricatorController',
|
'DiffusionController' => 'PhabricatorController',
|
||||||
'DiffusionDiffController' => 'DiffusionController',
|
'DiffusionDiffController' => 'DiffusionController',
|
||||||
|
'DiffusionEmptyResultView' => 'DiffusionView',
|
||||||
'DiffusionGitBranchQuery' => 'DiffusionBranchQuery',
|
'DiffusionGitBranchQuery' => 'DiffusionBranchQuery',
|
||||||
'DiffusionGitBranchQueryTestCase' => 'PhabricatorTestCase',
|
'DiffusionGitBranchQueryTestCase' => 'PhabricatorTestCase',
|
||||||
'DiffusionGitBrowseQuery' => 'DiffusionBrowseQuery',
|
'DiffusionGitBrowseQuery' => 'DiffusionBrowseQuery',
|
||||||
|
|
|
@ -0,0 +1,71 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright 2012 Facebook, Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
final class ConduitAPI_remarkup_process_Method extends ConduitAPIMethod {
|
||||||
|
|
||||||
|
public function getMethodDescription() {
|
||||||
|
return 'Process text through remarkup in phabricator context.';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function defineReturnType() {
|
||||||
|
return 'nonempty dict';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function defineErrorTypes() {
|
||||||
|
return array(
|
||||||
|
'ERR-NO-CONTENT' => 'Content may not be empty.',
|
||||||
|
'ERR-INVALID-ENGINE' => 'Invalid markup engine.',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function defineParamTypes() {
|
||||||
|
$available_contexts = array_keys($this->getEngineContexts());
|
||||||
|
$available_contexts = implode(', ', $available_contexts);
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'context' => 'required enum<'.$available_contexts.'>',
|
||||||
|
'content' => 'required string',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function execute(ConduitAPIRequest $request) {
|
||||||
|
$content = $request->getValue('content');
|
||||||
|
$context = $request->getValue('context');
|
||||||
|
|
||||||
|
$engine_class = idx($this->getEngineContexts(), $context);
|
||||||
|
if (!$engine_class) {
|
||||||
|
throw new ConduitException('ERR-INVALID_ENGINE');
|
||||||
|
}
|
||||||
|
|
||||||
|
$engine = PhabricatorMarkupEngine::$engine_class();
|
||||||
|
|
||||||
|
$result = array(
|
||||||
|
'content' => $engine->markupText($content),
|
||||||
|
);
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getEngineContexts() {
|
||||||
|
return array(
|
||||||
|
'phriction' => 'newPhrictionMarkupEngine',
|
||||||
|
'maniphest' => 'newManiphestMarkupEngine',
|
||||||
|
'differential' => 'newDifferentialMarkupEngine',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This file is automatically generated. Lint this module to rebuild it.
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
phutil_require_module('phabricator', 'applications/conduit/method/base');
|
||||||
|
phutil_require_module('phabricator', 'applications/conduit/protocol/exception');
|
||||||
|
phutil_require_module('phabricator', 'applications/markup/engine');
|
||||||
|
|
||||||
|
phutil_require_module('phutil', 'utils');
|
||||||
|
|
||||||
|
|
||||||
|
phutil_require_source('ConduitAPI_remarkup_process_Method.php');
|
Loading…
Reference in a new issue