Differential D20134 Diff 48082 src/applications/typeahead/controller/PhabricatorTypeaheadModularDatasourceController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/typeahead/controller/PhabricatorTypeaheadModularDatasourceController.php
Show All 29 Lines | public function handleRequest(AphrontRequest $request) { | ||||
$class = nonempty($request->getURIData('class'), $request->getStr('class')); | $class = nonempty($request->getURIData('class'), $request->getStr('class')); | ||||
$sources = id(new PhutilClassMapQuery()) | $sources = id(new PhutilClassMapQuery()) | ||||
->setAncestorClass('PhabricatorTypeaheadDatasource') | ->setAncestorClass('PhabricatorTypeaheadDatasource') | ||||
->execute(); | ->execute(); | ||||
if (isset($sources[$class])) { | if (isset($sources[$class])) { | ||||
$source = $sources[$class]; | $source = $sources[$class]; | ||||
$source->setParameters($request->getRequestData()); | |||||
$parameters = array(); | |||||
$raw_parameters = $request->getStr('parameters'); | |||||
if (strlen($raw_parameters)) { | |||||
try { | |||||
$parameters = phutil_json_decode($raw_parameters); | |||||
} catch (PhutilJSONParserException $ex) { | |||||
return $this->newDialog() | |||||
->setTitle(pht('Invalid Parameters')) | |||||
->appendParagraph( | |||||
pht( | |||||
'The HTTP parameter named "parameters" for this request is '. | |||||
'not a valid JSON parameter. JSON is required. Exception: %s', | |||||
amckinley: "Yo dawg, I heard you liked parameters..."
No one should ever see this anyway, but this… | |||||
$ex->getMessage())) | |||||
->addCancelButton('/'); | |||||
} | |||||
} | |||||
$source->setParameters($parameters); | |||||
$source->setViewer($viewer); | $source->setViewer($viewer); | ||||
// NOTE: Wrapping the source in a Composite datasource ensures we perform | // NOTE: Wrapping the source in a Composite datasource ensures we perform | ||||
// application visibility checks for the viewer, so we do not need to do | // application visibility checks for the viewer, so we do not need to do | ||||
// those separately. | // those separately. | ||||
$composite = new PhabricatorTypeaheadRuntimeCompositeDatasource(); | $composite = new PhabricatorTypeaheadRuntimeCompositeDatasource(); | ||||
$composite->addDatasource($source); | $composite->addDatasource($source); | ||||
▲ Show 20 Lines • Show All 388 Lines • Show Last 20 Lines |
"Yo dawg, I heard you liked parameters..."
No one should ever see this anyway, but this sentence is kind of a mess.