Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/harbormaster/conduit/HarbormasterQueryBuildsConduitAPIMethod.php
12256 views
1
<?php
2
3
final class HarbormasterQueryBuildsConduitAPIMethod
4
extends HarbormasterConduitAPIMethod {
5
6
public function getAPIMethodName() {
7
return 'harbormaster.querybuilds';
8
}
9
10
public function getMethodDescription() {
11
return pht('Query Harbormaster builds.');
12
}
13
14
public function getMethodStatus() {
15
return self::METHOD_STATUS_DEPRECATED;
16
}
17
18
public function getMethodStatusDescription() {
19
return pht('Use %s instead.', 'harbormaster.build.search');
20
}
21
22
protected function defineParamTypes() {
23
return array(
24
'ids' => 'optional list<id>',
25
'phids' => 'optional list<phid>',
26
'buildStatuses' => 'optional list<string>',
27
'buildablePHIDs' => 'optional list<phid>',
28
'buildPlanPHIDs' => 'optional list<phid>',
29
) + self::getPagerParamTypes();
30
}
31
32
protected function defineReturnType() {
33
return 'wild';
34
}
35
36
protected function execute(ConduitAPIRequest $request) {
37
$viewer = $request->getUser();
38
$call = new ConduitCall(
39
'harbormaster.build.search',
40
array_filter(array(
41
'constraints' => array_filter(array(
42
'ids' => $request->getValue('ids'),
43
'phids' => $request->getValue('phids'),
44
'statuses' => $request->getValue('buildStatuses'),
45
'buildables' => $request->getValue('buildablePHIDs'),
46
'plans' => $request->getValue('buildPlanPHIDs'),
47
)),
48
'attachments' => array(
49
'querybuilds' => true,
50
),
51
'limit' => $request->getValue('limit'),
52
'before' => $request->getValue('before'),
53
'after' => $request->getValue('after'),
54
)));
55
56
$subsumption = $call->setUser($viewer)
57
->execute();
58
59
$data = array();
60
foreach ($subsumption['data'] as $build_data) {
61
$querybuilds = idxv(
62
$build_data,
63
array('attachments', 'querybuilds'),
64
array());
65
$fields = idx($build_data, 'fields', array());
66
unset($build_data['fields']);
67
unset($build_data['attachments']);
68
69
// To retain backward compatibility, remove newer keys from the
70
// result array.
71
$fields['buildStatus'] = array_select_keys(
72
$fields['buildStatus'],
73
array(
74
'value',
75
'name',
76
));
77
78
$data[] = array_mergev(array($build_data, $querybuilds, $fields));
79
}
80
81
$subsumption['data'] = $data;
82
83
return $subsumption;
84
}
85
86
}
87
88