3 require_once('../include/json-header.php');
6 $data = ensure_privileged_api_data_and_token();
8 $analysis_task_id = array_get($data, 'task');
9 $bug_tracker_id = array_get($data, 'bugTracker');
10 $bug_number = array_get($data, 'number');
12 require_format('AnalysisTask', $analysis_task_id, '/^\d+$/');
13 require_format('BugTracker', $bug_tracker_id, '/^\d+$/');
14 require_format('BugNumber', $bug_number, '/^\d*$/');
17 $db->begin_transaction();
21 $count = $db->query_and_get_affected_rows("DELETE FROM bugs WHERE bug_task = $1 AND bug_tracker = $2",
22 array($analysis_task_id, $bug_tracker_id));
24 $db->rollback_transaction();
25 exit_with_error('UnexpectedNumberOfAffectedRows', array('affectedRows' => $count));
28 $bug_id = $db->update_or_insert_row('bugs', 'bug', array('task' => $analysis_task_id, 'tracker' => $bug_tracker_id),
29 array('task' => $analysis_task_id, 'tracker' => $bug_tracker_id, 'number' => $bug_number));
31 $db->commit_transaction();
33 exit_with_success(array('bugId' => $bug_id));