UI to associate bugs with an analysis task is crappy
[WebKit-https.git] / Websites / perf.webkit.org / public / privileged-api / associate-bug.php
index 67340055d9f7d19f13b96f3e5582e0c19183a53f..4318d4ab7f59728c125bdf9758fc1a14dfddfb9c 100644 (file)
@@ -5,33 +5,30 @@ require_once('../include/json-header.php');
 function main() {
     $data = ensure_privileged_api_data_and_token();
 
 function main() {
     $data = ensure_privileged_api_data_and_token();
 
-    $run_id = array_get($data, 'run');
-    $bug_tracker_id = array_get($data, 'tracker');
-    $bug_number = array_get($data, 'bugNumber');
-
-    if (!$run_id)
-        exit_with_error('InvalidRunId', array('run' => $run_id));
-    if (!$bug_tracker_id)
-        exit_with_error('InvalidBugTrackerId', array('tracker' => $bug_tracker_id));
+    $analysis_task_id = array_get($data, 'task');
+    $bug_tracker_id = array_get($data, 'bugTracker');
+    $bug_number = array_get($data, 'number');
+    $bug_id = array_get($data, 'bugToDelete');
 
     $db = connect();
     $db->begin_transaction();
 
 
     $db = connect();
     $db->begin_transaction();
 
-    $bug_id = NULL;
-    if (!$bug_number) {
-        $count = $db->query_and_get_affected_rows("DELETE FROM bugs WHERE bug_run = $1 AND bug_tracker = $2",
-            array($run_id, $bug_tracker_id));
-        if ($count > 1) {
+    if ($bug_id) {
+        require_format('BugToDelete', $bug_id, '/^\d+$/');
+        $count = $db->query_and_get_affected_rows("DELETE FROM bugs WHERE bug_id = $1", array($bug_id));
+        if ($count != 1) {
             $db->rollback_transaction();
             exit_with_error('UnexpectedNumberOfAffectedRows', array('affectedRows' => $count));
         }
     } else {
             $db->rollback_transaction();
             exit_with_error('UnexpectedNumberOfAffectedRows', array('affectedRows' => $count));
         }
     } else {
-        $bug_id = $db->update_or_insert_row('bugs', 'bug', array('run' => $run_id, 'tracker' => $bug_tracker_id),
-            array('run' => $run_id, 'tracker' => $bug_tracker_id, 'number' => $bug_number));
+        require_format('AnalysisTask', $analysis_task_id, '/^\d+$/');
+        require_format('BugTracker', $bug_tracker_id, '/^\d+$/');
+        require_format('BugNumber', $bug_number, '/^\d+$/');
+        $bug_id = $db->insert_row('bugs', 'bug', array('task' => $analysis_task_id, 'tracker' => $bug_tracker_id, 'number' => $bug_number));
     }
     $db->commit_transaction();
 
     }
     $db->commit_transaction();
 
-    exit_with_success(array('bug_id' => $bug_id));
+    exit_with_success(array('bugId' => $bug_id));
 }
 
 main();
 }
 
 main();