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',
|
||||
'HarbormasterBuildablePHIDType' => 'applications/harbormaster/phid/HarbormasterBuildablePHIDType.php',
|
||||
'HarbormasterBuildableQuery' => 'applications/harbormaster/query/HarbormasterBuildableQuery.php',
|
||||
'HarbormasterBuildableSearchAPIMethod' => 'applications/harbormaster/conduit/HarbormasterBuildableSearchAPIMethod.php',
|
||||
'HarbormasterBuildableSearchEngine' => 'applications/harbormaster/query/HarbormasterBuildableSearchEngine.php',
|
||||
'HarbormasterBuildableStatus' => 'applications/harbormaster/constants/HarbormasterBuildableStatus.php',
|
||||
'HarbormasterBuildableTransaction' => 'applications/harbormaster/storage/HarbormasterBuildableTransaction.php',
|
||||
@@ -6845,6 +6846,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorApplicationTransactionInterface',
|
||||
'PhabricatorPolicyInterface',
|
||||
'HarbormasterBuildableInterface',
|
||||
'PhabricatorConduitResultInterface',
|
||||
'PhabricatorDestructibleInterface',
|
||||
),
|
||||
'HarbormasterBuildableActionController' => 'HarbormasterController',
|
||||
@@ -6852,6 +6854,7 @@ phutil_register_library_map(array(
|
||||
'HarbormasterBuildableListController' => 'HarbormasterController',
|
||||
'HarbormasterBuildablePHIDType' => 'PhabricatorPHIDType',
|
||||
'HarbormasterBuildableQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
||||
'HarbormasterBuildableSearchAPIMethod' => 'PhabricatorSearchEngineAPIMethod',
|
||||
'HarbormasterBuildableSearchEngine' => 'PhabricatorApplicationSearchEngine',
|
||||
'HarbormasterBuildableStatus' => 'Phobject',
|
||||
'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,
|
||||
PhabricatorPolicyInterface,
|
||||
HarbormasterBuildableInterface,
|
||||
PhabricatorConduitResultInterface,
|
||||
PhabricatorDestructibleInterface {
|
||||
|
||||
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 )----------------------------------- */
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user