3 require_once('../include/json-header.php');
4 require_once('../include/build-requests-fetcher.php');
9 exit_with_error('DatabaseConnectionFailure');
12 exit_with_error('InvalidRequest');
14 $build_requests_fetcher = new BuildRequestsFetcher($db);
16 if (count($path) > 0 && $path[0]) {
17 $group_id = intval($path[0]);
18 $group = $db->select_first_row('analysis_test_groups', 'testgroup', array('id' => $group_id));
20 exit_with_error('GroupNotFound', array('id' => $group_id));
21 $test_groups = array($group);
22 $build_requests_fetcher->fetch_for_group($group_id);
24 $task_id = array_get($_GET, 'task');
26 exit_with_error('TaskIdNotSpecified');
28 $test_groups = $db->select_rows('analysis_test_groups', 'testgroup', array('task' => $task_id));
29 if (!is_array($test_groups))
30 exit_with_error('FailedToFetchTestGroups');
31 $build_requests_fetcher->fetch_for_task($task_id);
33 if (!$build_requests_fetcher->has_results())
34 exit_with_error('FailedToFetchBuildRequests');
36 $test_groups = array_map("format_test_group", $test_groups);
37 $group_by_id = array();
38 foreach ($test_groups as &$group)
39 $group_by_id[$group['id']] = &$group;
41 $build_requests = $build_requests_fetcher->results();
42 foreach ($build_requests as $request) {
43 $request_group = &$group_by_id[$request['testGroup']];
44 array_push($request_group['buildRequests'], $request['id']);
45 array_push($request_group['rootSets'], $request['rootSet']);
48 exit_with_success(array('testGroups' => $test_groups,
49 'buildRequests' => $build_requests,
50 'rootSets' => $build_requests_fetcher->root_sets(),
51 'roots' => $build_requests_fetcher->roots()));
54 function format_test_group($group_row) {
56 'id' => $group_row['testgroup_id'],
57 'task' => $group_row['testgroup_task'],
58 'name' => $group_row['testgroup_name'],
59 'author' => $group_row['testgroup_author'],
60 'createdAt' => strtotime($group_row['testgroup_created_at']) * 1000,
61 'buildRequests' => array(),
62 'rootSets' => array(),
66 main(array_key_exists('PATH_INFO', $_SERVER) ? explode('/', trim($_SERVER['PATH_INFO'], '/')) : array());