Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/harbormaster/conduit/HarbormasterQueryBuildablesConduitAPIMethod.php
12256 views
1
<?php
2
3
final class HarbormasterQueryBuildablesConduitAPIMethod
4
extends HarbormasterConduitAPIMethod {
5
6
public function getAPIMethodName() {
7
return 'harbormaster.querybuildables';
8
}
9
10
public function getMethodDescription() {
11
return pht('Query Harbormaster buildables.');
12
}
13
14
protected function defineParamTypes() {
15
return array(
16
'ids' => 'optional list<id>',
17
'phids' => 'optional list<phid>',
18
'buildablePHIDs' => 'optional list<phid>',
19
'containerPHIDs' => 'optional list<phid>',
20
'manualBuildables' => 'optional bool',
21
) + self::getPagerParamTypes();
22
}
23
24
protected function defineReturnType() {
25
return 'wild';
26
}
27
28
protected function execute(ConduitAPIRequest $request) {
29
$viewer = $request->getUser();
30
31
$query = id(new HarbormasterBuildableQuery())
32
->setViewer($viewer);
33
34
$ids = $request->getValue('ids');
35
if ($ids !== null) {
36
$query->withIDs($ids);
37
}
38
39
$phids = $request->getValue('phids');
40
if ($phids !== null) {
41
$query->withPHIDs($phids);
42
}
43
44
$buildable_phids = $request->getValue('buildablePHIDs');
45
if ($buildable_phids !== null) {
46
$query->withBuildablePHIDs($buildable_phids);
47
}
48
49
$container_phids = $request->getValue('containerPHIDs');
50
if ($container_phids !== null) {
51
$query->withContainerPHIDs($container_phids);
52
}
53
54
$manual = $request->getValue('manualBuildables');
55
if ($manual !== null) {
56
$query->withManualBuildables($manual);
57
}
58
59
$pager = $this->newPager($request);
60
61
$buildables = $query->executeWithCursorPager($pager);
62
63
$data = array();
64
foreach ($buildables as $buildable) {
65
$monogram = $buildable->getMonogram();
66
67
$status = $buildable->getBuildableStatus();
68
$status_name = $buildable->getStatusDisplayName();
69
70
$data[] = array(
71
'id' => $buildable->getID(),
72
'phid' => $buildable->getPHID(),
73
'monogram' => $monogram,
74
'uri' => PhabricatorEnv::getProductionURI('/'.$monogram),
75
'buildableStatus' => $status,
76
'buildableStatusName' => $status_name,
77
'buildablePHID' => $buildable->getBuildablePHID(),
78
'containerPHID' => $buildable->getContainerPHID(),
79
'isManualBuildable' => (bool)$buildable->getIsManualBuildable(),
80
);
81
}
82
83
$results = array(
84
'data' => $data,
85
);
86
87
$results = $this->addPagerResults($results, $pager);
88
return $results;
89
}
90
91
}
92
93