diff --git a/src/applications/macro/conduit/ConduitAPI_macro_query_Method.php b/src/applications/macro/conduit/ConduitAPI_macro_query_Method.php index f6477836cd..87146d5c62 100644 --- a/src/applications/macro/conduit/ConduitAPI_macro_query_Method.php +++ b/src/applications/macro/conduit/ConduitAPI_macro_query_Method.php @@ -11,6 +11,11 @@ final class ConduitAPI_macro_query_Method extends ConduitAPI_macro_Method { public function defineParamTypes() { return array( + 'authorPHIDs' => 'optional list', + 'phids' => 'optional list', + 'ids' => 'optional list', + 'names' => 'optional list', + 'nameLike' => 'optional string', ); } @@ -24,14 +29,49 @@ final class ConduitAPI_macro_query_Method extends ConduitAPI_macro_Method { } protected function execute(ConduitAPIRequest $request) { - $macros = id(new PhabricatorMacroQuery()) - ->setViewer($request->getUser()) - ->execute(); + $query = new PhabricatorMacroQuery(); + $query->setViewer($request->getUser()); + + $author_phids = $request->getValue('authorPHIDs'); + $phids = $request->getValue('phids'); + $ids = $request->getValue('ids'); + $name_like = $request->getValue('nameLike'); + $names = $request->getValue('names'); + + if ($author_phids) { + $query->withAuthorPHIDs($author_phids); + } + + if ($phids) { + $query->withPHIDs($phids); + } + + if ($ids) { + $query->withIDs($ids); + } + + if ($name_like) { + $query->withNameLike($name_like); + } + + if ($names) { + $query->withNames($names); + } + + $macros = $query->execute(); + + if (!$macros) { + return array(); + } $results = array(); foreach ($macros as $macro) { + $file = $macro->getFile(); $results[$macro->getName()] = array( - 'uri' => $macro->getFile()->getBestURI(), + 'uri' => $file->getBestURI(), + 'phid' => $macro->getPHID(), + 'authorPHID' => $file->getAuthorPHID(), + 'dateCreated' => $file->getDateCreated(), ); }