Introduce the concept of analysis task to perf dashboard
[WebKit-https.git] / Websites / perf.webkit.org / public / privileged-api / associate-bug.php
1 <?php
2
3 require_once('../include/json-header.php');
4
5 function main() {
6     $data = ensure_privileged_api_data_and_token();
7
8     $run_id = array_get($data, 'run');
9     $bug_tracker_id = array_get($data, 'tracker');
10     $bug_number = array_get($data, 'bugNumber');
11
12     if (!$run_id)
13         exit_with_error('InvalidRunId', array('run' => $run_id));
14     if (!$bug_tracker_id)
15         exit_with_error('InvalidBugTrackerId', array('tracker' => $bug_tracker_id));
16
17     $db = connect();
18     $db->begin_transaction();
19
20     $bug_id = NULL;
21     if (!$bug_number) {
22         $count = $db->query_and_get_affected_rows("DELETE FROM bugs WHERE bug_run = $1 AND bug_tracker = $2",
23             array($run_id, $bug_tracker_id));
24         if ($count > 1) {
25             $db->rollback_transaction();
26             exit_with_error('UnexpectedNumberOfAffectedRows', array('affectedRows' => $count));
27         }
28     } else {
29         $bug_id = $db->update_or_insert_row('bugs', 'bug', array('run' => $run_id, 'tracker' => $bug_tracker_id),
30             array('run' => $run_id, 'tracker' => $bug_tracker_id, 'number' => $bug_number));
31     }
32     $db->commit_transaction();
33
34     exit_with_success(array('bugId' => $bug_id));
35 }
36
37 main();
38
39 ?>