Path: blob/master/src/applications/diffusion/conduit/DiffusionInternalCommitSearchConduitAPIMethod.php
12242 views
<?php12final class DiffusionInternalCommitSearchConduitAPIMethod3extends PhabricatorSearchEngineAPIMethod {45public function getAPIMethodName() {6return 'internal.commit.search';7}89public function newSearchEngine() {10return new DiffusionInternalCommitSearchEngine();11}1213public function getMethodSummary() {14return pht('Read raw information about commits.');15}1617protected function newConduitCallProxyClient(ConduitAPIRequest $request) {18$viewer = $request->getViewer();1920$constraints = $request->getValue('constraints');21if (is_array($constraints)) {22$repository_phids = idx($constraints, 'repositoryPHIDs');23} else {24$repository_phids = array();25}2627$repository_phid = null;28if (is_array($repository_phids)) {29if (phutil_is_natural_list($repository_phids)) {30if (count($repository_phids) === 1) {31$value = head($repository_phids);32if (is_string($value)) {33$repository_phid = $value;34}35}36}37}3839if ($repository_phid === null) {40throw new Exception(41pht(42'This internal method must be invoked with a "repositoryPHIDs" '.43'constraint with exactly one value.'));44}4546$repository = id(new PhabricatorRepositoryQuery())47->setViewer($viewer)48->withPHIDs(array($repository_phid))49->executeOne();50if (!$repository) {51return array();52}5354return $repository->newConduitClientForRequest($request);55}5657}585960