Implement basic differential.revision.search
Summary: Ref T11123. This implements a very basic skeleton for modern revision search. Test Plan: Viewed and executed Conduit API method. Reviewers: chad Reviewed By: chad Maniphest Tasks: T11123 Differential Revision: https://secure.phabricator.com/D16089
This commit is contained in:
		| @@ -541,6 +541,7 @@ phutil_register_library_map(array( | |||||||
|     'DifferentialRevisionRequiredActionResultBucket' => 'applications/differential/query/DifferentialRevisionRequiredActionResultBucket.php', |     'DifferentialRevisionRequiredActionResultBucket' => 'applications/differential/query/DifferentialRevisionRequiredActionResultBucket.php', | ||||||
|     'DifferentialRevisionResultBucket' => 'applications/differential/query/DifferentialRevisionResultBucket.php', |     'DifferentialRevisionResultBucket' => 'applications/differential/query/DifferentialRevisionResultBucket.php', | ||||||
|     'DifferentialRevisionReviewersHeraldField' => 'applications/differential/herald/DifferentialRevisionReviewersHeraldField.php', |     'DifferentialRevisionReviewersHeraldField' => 'applications/differential/herald/DifferentialRevisionReviewersHeraldField.php', | ||||||
|  |     'DifferentialRevisionSearchConduitAPIMethod' => 'applications/differential/conduit/DifferentialRevisionSearchConduitAPIMethod.php', | ||||||
|     'DifferentialRevisionSearchEngine' => 'applications/differential/query/DifferentialRevisionSearchEngine.php', |     'DifferentialRevisionSearchEngine' => 'applications/differential/query/DifferentialRevisionSearchEngine.php', | ||||||
|     'DifferentialRevisionStatus' => 'applications/differential/constants/DifferentialRevisionStatus.php', |     'DifferentialRevisionStatus' => 'applications/differential/constants/DifferentialRevisionStatus.php', | ||||||
|     'DifferentialRevisionSummaryHeraldField' => 'applications/differential/herald/DifferentialRevisionSummaryHeraldField.php', |     'DifferentialRevisionSummaryHeraldField' => 'applications/differential/herald/DifferentialRevisionSummaryHeraldField.php', | ||||||
| @@ -4820,6 +4821,7 @@ phutil_register_library_map(array( | |||||||
|       'PhabricatorDestructibleInterface', |       'PhabricatorDestructibleInterface', | ||||||
|       'PhabricatorProjectInterface', |       'PhabricatorProjectInterface', | ||||||
|       'PhabricatorFulltextInterface', |       'PhabricatorFulltextInterface', | ||||||
|  |       'PhabricatorConduitResultInterface', | ||||||
|     ), |     ), | ||||||
|     'DifferentialRevisionAffectedFilesHeraldField' => 'DifferentialRevisionHeraldField', |     'DifferentialRevisionAffectedFilesHeraldField' => 'DifferentialRevisionHeraldField', | ||||||
|     'DifferentialRevisionAuthorHeraldField' => 'DifferentialRevisionHeraldField', |     'DifferentialRevisionAuthorHeraldField' => 'DifferentialRevisionHeraldField', | ||||||
| @@ -4853,6 +4855,7 @@ phutil_register_library_map(array( | |||||||
|     'DifferentialRevisionRequiredActionResultBucket' => 'DifferentialRevisionResultBucket', |     'DifferentialRevisionRequiredActionResultBucket' => 'DifferentialRevisionResultBucket', | ||||||
|     'DifferentialRevisionResultBucket' => 'PhabricatorSearchResultBucket', |     'DifferentialRevisionResultBucket' => 'PhabricatorSearchResultBucket', | ||||||
|     'DifferentialRevisionReviewersHeraldField' => 'DifferentialRevisionHeraldField', |     'DifferentialRevisionReviewersHeraldField' => 'DifferentialRevisionHeraldField', | ||||||
|  |     'DifferentialRevisionSearchConduitAPIMethod' => 'PhabricatorSearchEngineAPIMethod', | ||||||
|     'DifferentialRevisionSearchEngine' => 'PhabricatorApplicationSearchEngine', |     'DifferentialRevisionSearchEngine' => 'PhabricatorApplicationSearchEngine', | ||||||
|     'DifferentialRevisionStatus' => 'Phobject', |     'DifferentialRevisionStatus' => 'Phobject', | ||||||
|     'DifferentialRevisionSummaryHeraldField' => 'DifferentialRevisionHeraldField', |     'DifferentialRevisionSummaryHeraldField' => 'DifferentialRevisionHeraldField', | ||||||
|   | |||||||
| @@ -0,0 +1,18 @@ | |||||||
|  | <?php | ||||||
|  |  | ||||||
|  | final class DifferentialRevisionSearchConduitAPIMethod | ||||||
|  |   extends PhabricatorSearchEngineAPIMethod { | ||||||
|  |  | ||||||
|  |   public function getAPIMethodName() { | ||||||
|  |     return 'differential.revision.search'; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   public function newSearchEngine() { | ||||||
|  |     return new DifferentialRevisionSearchEngine(); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   public function getMethodSummary() { | ||||||
|  |     return pht('Read information about revisions.'); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -14,7 +14,8 @@ final class DifferentialRevision extends DifferentialDAO | |||||||
|     PhabricatorMentionableInterface, |     PhabricatorMentionableInterface, | ||||||
|     PhabricatorDestructibleInterface, |     PhabricatorDestructibleInterface, | ||||||
|     PhabricatorProjectInterface, |     PhabricatorProjectInterface, | ||||||
|     PhabricatorFulltextInterface { |     PhabricatorFulltextInterface, | ||||||
|  |     PhabricatorConduitResultInterface { | ||||||
|  |  | ||||||
|   protected $title = ''; |   protected $title = ''; | ||||||
|   protected $originalTitle; |   protected $originalTitle; | ||||||
| @@ -635,4 +636,31 @@ final class DifferentialRevision extends DifferentialDAO | |||||||
|   } |   } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /* -(  PhabricatorConduitResultInterface  )---------------------------------- */ | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   public function getFieldSpecificationsForConduit() { | ||||||
|  |     return array( | ||||||
|  |       id(new PhabricatorConduitSearchFieldSpecification()) | ||||||
|  |         ->setKey('title') | ||||||
|  |         ->setType('string') | ||||||
|  |         ->setDescription(pht('The revision title.')), | ||||||
|  |       id(new PhabricatorConduitSearchFieldSpecification()) | ||||||
|  |         ->setKey('authorPHID') | ||||||
|  |         ->setType('phid') | ||||||
|  |         ->setDescription(pht('Revision author PHID.')), | ||||||
|  |     ); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   public function getFieldValuesForConduit() { | ||||||
|  |     return array( | ||||||
|  |       'title' => $this->getTitle(), | ||||||
|  |       'authorPHID' => $this->getAuthorPHID(), | ||||||
|  |     ); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   public function getConduitSearchAttachments() { | ||||||
|  |     return array(); | ||||||
|  |   } | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 epriestley
					epriestley