Add a "slowvote.poll.search" API method
Summary: Ref T13350. Add a modern "*.search" API method for Slowvote so "slowvote.info" can be deprecated with a reasonable replacement. Test Plan: Used Conduit test console to call method, saw reasonable results. Maniphest Tasks: T13350 Differential Revision: https://secure.phabricator.com/D20685
This commit is contained in:
		| @@ -5614,6 +5614,7 @@ phutil_register_library_map(array( | ||||
|     'SlowvoteEmbedView' => 'applications/slowvote/view/SlowvoteEmbedView.php', | ||||
|     'SlowvoteInfoConduitAPIMethod' => 'applications/slowvote/conduit/SlowvoteInfoConduitAPIMethod.php', | ||||
|     'SlowvoteRemarkupRule' => 'applications/slowvote/remarkup/SlowvoteRemarkupRule.php', | ||||
|     'SlowvoteSearchConduitAPIMethod' => 'applications/slowvote/conduit/SlowvoteSearchConduitAPIMethod.php', | ||||
|     'SubscriptionListDialogBuilder' => 'applications/subscriptions/view/SubscriptionListDialogBuilder.php', | ||||
|     'SubscriptionListStringBuilder' => 'applications/subscriptions/view/SubscriptionListStringBuilder.php', | ||||
|     'TokenConduitAPIMethod' => 'applications/tokens/conduit/TokenConduitAPIMethod.php', | ||||
| @@ -11075,6 +11076,7 @@ phutil_register_library_map(array( | ||||
|       'PhabricatorProjectInterface', | ||||
|       'PhabricatorDestructibleInterface', | ||||
|       'PhabricatorSpacesInterface', | ||||
|       'PhabricatorConduitResultInterface', | ||||
|     ), | ||||
|     'PhabricatorSlowvotePollController' => 'PhabricatorSlowvoteController', | ||||
|     'PhabricatorSlowvotePollPHIDType' => 'PhabricatorPHIDType', | ||||
| @@ -12221,6 +12223,7 @@ phutil_register_library_map(array( | ||||
|     'SlowvoteEmbedView' => 'AphrontView', | ||||
|     'SlowvoteInfoConduitAPIMethod' => 'SlowvoteConduitAPIMethod', | ||||
|     'SlowvoteRemarkupRule' => 'PhabricatorObjectRemarkupRule', | ||||
|     'SlowvoteSearchConduitAPIMethod' => 'PhabricatorSearchEngineAPIMethod', | ||||
|     'SubscriptionListDialogBuilder' => 'Phobject', | ||||
|     'SubscriptionListStringBuilder' => 'Phobject', | ||||
|     'TokenConduitAPIMethod' => 'ConduitAPIMethod', | ||||
|   | ||||
| @@ -0,0 +1,18 @@ | ||||
| <?php | ||||
|  | ||||
| final class SlowvoteSearchConduitAPIMethod | ||||
|   extends PhabricatorSearchEngineAPIMethod { | ||||
|  | ||||
|   public function getAPIMethodName() { | ||||
|     return 'slowvote.poll.search'; | ||||
|   } | ||||
|  | ||||
|   public function newSearchEngine() { | ||||
|     return new PhabricatorSlowvoteSearchEngine(); | ||||
|   } | ||||
|  | ||||
|   public function getMethodSummary() { | ||||
|     return pht('Read information about polls.'); | ||||
|   } | ||||
|  | ||||
| } | ||||
| @@ -46,20 +46,26 @@ final class PhabricatorSlowvoteSearchEngine | ||||
|         ->setKey('authorPHIDs') | ||||
|         ->setAliases(array('authors')) | ||||
|         ->setLabel(pht('Authors')), | ||||
|  | ||||
|       id(new PhabricatorSearchCheckboxesField()) | ||||
|         ->setKey('voted') | ||||
|         ->setLabel(pht('Voted')) | ||||
|  | ||||
|         // TODO: This should probably become a list of "voterPHIDs", so hide | ||||
|         // the field from Conduit to avoid a backward compatibility break when | ||||
|         // this changes. | ||||
|  | ||||
|         ->setEnableForConduit(false) | ||||
|         ->setOptions(array( | ||||
|           'voted' => pht("Show only polls I've voted in."), | ||||
|           )), | ||||
|  | ||||
|       id(new PhabricatorSearchCheckboxesField()) | ||||
|         ->setKey('statuses') | ||||
|         ->setLabel(pht('Statuses')) | ||||
|         ->setOptions(array( | ||||
|         ->setOptions( | ||||
|           array( | ||||
|           'open' => pht('Open'), | ||||
|           'closed' => pht('Closed'), | ||||
|           )), | ||||
|         )), | ||||
|     ); | ||||
|   } | ||||
|  | ||||
|   | ||||
| @@ -9,7 +9,8 @@ final class PhabricatorSlowvotePoll extends PhabricatorSlowvoteDAO | ||||
|     PhabricatorTokenReceiverInterface, | ||||
|     PhabricatorProjectInterface, | ||||
|     PhabricatorDestructibleInterface, | ||||
|     PhabricatorSpacesInterface { | ||||
|     PhabricatorSpacesInterface, | ||||
|     PhabricatorConduitResultInterface { | ||||
|  | ||||
|   const RESPONSES_VISIBLE = 0; | ||||
|   const RESPONSES_VOTERS  = 1; | ||||
| @@ -202,10 +203,36 @@ final class PhabricatorSlowvotePoll extends PhabricatorSlowvoteDAO | ||||
|     $this->saveTransaction(); | ||||
|   } | ||||
|  | ||||
|   /* -(  PhabricatorSpacesInterface  )--------------------------------------- */ | ||||
| /* -(  PhabricatorSpacesInterface  )----------------------------------------- */ | ||||
|  | ||||
|   public function getSpacePHID() { | ||||
|     return $this->spacePHID; | ||||
|   } | ||||
|  | ||||
| /* -(  PhabricatorConduitResultInterface  )---------------------------------- */ | ||||
|  | ||||
|   public function getFieldSpecificationsForConduit() { | ||||
|     return array( | ||||
|       id(new PhabricatorConduitSearchFieldSpecification()) | ||||
|         ->setKey('name') | ||||
|         ->setType('string') | ||||
|         ->setDescription(pht('The name of the poll.')), | ||||
|       id(new PhabricatorConduitSearchFieldSpecification()) | ||||
|         ->setKey('authorPHID') | ||||
|         ->setType('string') | ||||
|         ->setDescription(pht('The author of the poll.')), | ||||
|     ); | ||||
|   } | ||||
|  | ||||
|   public function getFieldValuesForConduit() { | ||||
|     return array( | ||||
|       'name' => $this->getQuestion(), | ||||
|       'authorPHID' => $this->getAuthorPHID(), | ||||
|     ); | ||||
|   } | ||||
|  | ||||
|   public function getConduitSearchAttachments() { | ||||
|     return array(); | ||||
|   } | ||||
|  | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 epriestley
					epriestley