mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-01 11:12:42 +01:00
8ce35e6b67
Fixes an issue with D9991. A user was hitting the following exception: ``` echo '{}' | arc --conduit-uri='http://phabricator.joshuaspence.com' call-conduit conduit.query Waiting for JSON parameters on stdin... Exception [HTTP/500] Internal Server Error >>> UNRECOVERABLE FATAL ERROR <<< Call to a member function getAPIMethodName() on a non-object /usr/src/phabricator/src/applications/conduit/method/ConduitQueryConduitAPIMethod.php:34 ┻━┻ ︵ ¯\_(ツ)_/¯ ︵ ┻━┻ (Run with --trace for a full exception trace.) ``` Auditors: epriestley
42 lines
908 B
PHP
42 lines
908 B
PHP
<?php
|
|
|
|
final class ConduitQueryConduitAPIMethod extends ConduitAPIMethod {
|
|
|
|
public function getAPIMethodName() {
|
|
return 'conduit.query';
|
|
}
|
|
|
|
public function getMethodDescription() {
|
|
return 'Returns the parameters of the Conduit methods.';
|
|
}
|
|
|
|
public function defineParamTypes() {
|
|
return array();
|
|
}
|
|
|
|
public function defineReturnType() {
|
|
return 'dict<dict>';
|
|
}
|
|
|
|
public function defineErrorTypes() {
|
|
return array();
|
|
}
|
|
|
|
protected function execute(ConduitAPIRequest $request) {
|
|
$classes = id(new PhutilSymbolLoader())
|
|
->setAncestorClass('ConduitAPIMethod')
|
|
->setType('class')
|
|
->setConcreteOnly(true)
|
|
->loadObjects();
|
|
|
|
$names_to_params = array();
|
|
foreach ($classes as $class) {
|
|
$names_to_params[$class->getAPIMethodName()] = array(
|
|
'params' => $class->defineParamTypes(),
|
|
);
|
|
}
|
|
|
|
return $names_to_params;
|
|
}
|
|
|
|
}
|