Add harbormaster.buildable.search API Method
Summary:
This revision adds a Conduit search method for buildables. It exposes:
* `objectPHID`
* `containerPHID`
* `buildableStatus`
* `isManual`
Test Plan:
Use the API Console to run searches. Example:
```
{
"data": [
{
"id": 2,
"type": "HMBB",
"phid": "PHID-HMBB-m4k5lodx6naq22576a7d",
"fields": {
"objectPHID": "PHID-DIFF-vzvgqqcyscpd7ta4osy2",
"containerPHID": "PHID-DREV-vsivs5276c7vtgpmssn2",
"buildableStatus": {
"value": "passed"
},
"isManual": true,
"dateCreated": 1542407155,
"dateModified": 1542407156,
"policy": {
"view": "users",
"edit": "users"
}
},
"attachments": {}
},
{
"id": 1,
"type": "HMBB",
"phid": "PHID-HMBB-opxfl4auoz3ey5klplrx",
"fields": {
"objectPHID": "PHID-DIFF-vzvgqqcyscpd7ta4osy2",
"containerPHID": null,
"buildableStatus": {
"value": "passed"
},
"isManual": false,
"dateCreated": 1542406968,
"dateModified": 1542406968,
"policy": {
"view": "users",
"edit": "users"
}
},
"attachments": {}
}
],
"maps": {},
"query": {
"queryKey": null
},
"cursor": {
"limit": 100,
"after": null,
"before": null,
"order": null
}
}
```
Reviewers: #blessed_reviewers, epriestley
Reviewed By: #blessed_reviewers, epriestley
Subscribers: Korvin, O14 ATC Monitoring
Differential Revision: https://secure.phabricator.com/D19818
This commit is contained in:
@@ -1367,6 +1367,7 @@ phutil_register_library_map(array(
|
|||||||
'HarbormasterBuildableListController' => 'applications/harbormaster/controller/HarbormasterBuildableListController.php',
|
'HarbormasterBuildableListController' => 'applications/harbormaster/controller/HarbormasterBuildableListController.php',
|
||||||
'HarbormasterBuildablePHIDType' => 'applications/harbormaster/phid/HarbormasterBuildablePHIDType.php',
|
'HarbormasterBuildablePHIDType' => 'applications/harbormaster/phid/HarbormasterBuildablePHIDType.php',
|
||||||
'HarbormasterBuildableQuery' => 'applications/harbormaster/query/HarbormasterBuildableQuery.php',
|
'HarbormasterBuildableQuery' => 'applications/harbormaster/query/HarbormasterBuildableQuery.php',
|
||||||
|
'HarbormasterBuildableSearchAPIMethod' => 'applications/harbormaster/conduit/HarbormasterBuildableSearchAPIMethod.php',
|
||||||
'HarbormasterBuildableSearchEngine' => 'applications/harbormaster/query/HarbormasterBuildableSearchEngine.php',
|
'HarbormasterBuildableSearchEngine' => 'applications/harbormaster/query/HarbormasterBuildableSearchEngine.php',
|
||||||
'HarbormasterBuildableStatus' => 'applications/harbormaster/constants/HarbormasterBuildableStatus.php',
|
'HarbormasterBuildableStatus' => 'applications/harbormaster/constants/HarbormasterBuildableStatus.php',
|
||||||
'HarbormasterBuildableTransaction' => 'applications/harbormaster/storage/HarbormasterBuildableTransaction.php',
|
'HarbormasterBuildableTransaction' => 'applications/harbormaster/storage/HarbormasterBuildableTransaction.php',
|
||||||
@@ -6845,6 +6846,7 @@ phutil_register_library_map(array(
|
|||||||
'PhabricatorApplicationTransactionInterface',
|
'PhabricatorApplicationTransactionInterface',
|
||||||
'PhabricatorPolicyInterface',
|
'PhabricatorPolicyInterface',
|
||||||
'HarbormasterBuildableInterface',
|
'HarbormasterBuildableInterface',
|
||||||
|
'PhabricatorConduitResultInterface',
|
||||||
'PhabricatorDestructibleInterface',
|
'PhabricatorDestructibleInterface',
|
||||||
),
|
),
|
||||||
'HarbormasterBuildableActionController' => 'HarbormasterController',
|
'HarbormasterBuildableActionController' => 'HarbormasterController',
|
||||||
@@ -6852,6 +6854,7 @@ phutil_register_library_map(array(
|
|||||||
'HarbormasterBuildableListController' => 'HarbormasterController',
|
'HarbormasterBuildableListController' => 'HarbormasterController',
|
||||||
'HarbormasterBuildablePHIDType' => 'PhabricatorPHIDType',
|
'HarbormasterBuildablePHIDType' => 'PhabricatorPHIDType',
|
||||||
'HarbormasterBuildableQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
'HarbormasterBuildableQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
||||||
|
'HarbormasterBuildableSearchAPIMethod' => 'PhabricatorSearchEngineAPIMethod',
|
||||||
'HarbormasterBuildableSearchEngine' => 'PhabricatorApplicationSearchEngine',
|
'HarbormasterBuildableSearchEngine' => 'PhabricatorApplicationSearchEngine',
|
||||||
'HarbormasterBuildableStatus' => 'Phobject',
|
'HarbormasterBuildableStatus' => 'Phobject',
|
||||||
'HarbormasterBuildableTransaction' => 'PhabricatorApplicationTransaction',
|
'HarbormasterBuildableTransaction' => 'PhabricatorApplicationTransaction',
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
final class HarbormasterBuildableSearchAPIMethod
|
||||||
|
extends PhabricatorSearchEngineAPIMethod {
|
||||||
|
|
||||||
|
public function getAPIMethodName() {
|
||||||
|
return 'harbormaster.buildable.search';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function newSearchEngine() {
|
||||||
|
return new HarbormasterBuildableSearchEngine();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getMethodSummary() {
|
||||||
|
return pht('Find out information about buildables.');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -6,6 +6,7 @@ final class HarbormasterBuildable
|
|||||||
PhabricatorApplicationTransactionInterface,
|
PhabricatorApplicationTransactionInterface,
|
||||||
PhabricatorPolicyInterface,
|
PhabricatorPolicyInterface,
|
||||||
HarbormasterBuildableInterface,
|
HarbormasterBuildableInterface,
|
||||||
|
PhabricatorConduitResultInterface,
|
||||||
PhabricatorDestructibleInterface {
|
PhabricatorDestructibleInterface {
|
||||||
|
|
||||||
protected $buildablePHID;
|
protected $buildablePHID;
|
||||||
@@ -355,6 +356,46 @@ final class HarbormasterBuildable
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* -( PhabricatorConduitResultInterface )---------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
|
public function getFieldSpecificationsForConduit() {
|
||||||
|
return array(
|
||||||
|
id(new PhabricatorConduitSearchFieldSpecification())
|
||||||
|
->setKey('objectPHID')
|
||||||
|
->setType('phid')
|
||||||
|
->setDescription(pht('PHID of the object that is built.')),
|
||||||
|
id(new PhabricatorConduitSearchFieldSpecification())
|
||||||
|
->setKey('containerPHID')
|
||||||
|
->setType('phid')
|
||||||
|
->setDescription(pht('PHID of the object containing this buildable.')),
|
||||||
|
id(new PhabricatorConduitSearchFieldSpecification())
|
||||||
|
->setKey('buildableStatus')
|
||||||
|
->setType('map<string, wild>')
|
||||||
|
->setDescription(pht('The current status of this buildable.')),
|
||||||
|
id(new PhabricatorConduitSearchFieldSpecification())
|
||||||
|
->setKey('isManual')
|
||||||
|
->setType('bool')
|
||||||
|
->setDescription(pht('True if this is a manual buildable.')),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getFieldValuesForConduit() {
|
||||||
|
return array(
|
||||||
|
'objectPHID' => $this->getBuildablePHID(),
|
||||||
|
'containerPHID' => $this->getContainerPHID(),
|
||||||
|
'buildableStatus' => array(
|
||||||
|
'value' => $this->getBuildableStatus(),
|
||||||
|
),
|
||||||
|
'isManual' => (bool)$this->getIsManualBuildable(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getConduitSearchAttachments() {
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* -( PhabricatorDestructibleInterface )----------------------------------- */
|
/* -( PhabricatorDestructibleInterface )----------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user