blob: 8b02cd4d3c901c8ddf3d97de48395f50a4b63f92 [file] [log] [blame]
<?php
require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_bugs_ro.class.php";
require_once "bug.class.php";
//print "$Id: BugzillaConnection.class.php,v 1.43 2008/04/09 02:25:18 edillon Exp $";
# A convenience class for Bugzilla a set of bugzilla queries
class BugzillaConnection {
private $dbc, $dbh;
private $productId;
public function __construct() {
$this->dbc = new DBConnectionBugs();
$this->dbh = $this->dbc->connect();
}
public function getTigerstripeProductID() {
if ( !isset($this->productId) ) {
$sql_info = "SELECT id FROM products WHERE name = \"Tigerstripe\"";
$rs = $this->runQuery($sql_info);
if ( isset($rs) ) {
while($myrow = mysql_fetch_assoc($rs)) {
$this->productId = $myrow['id'];
}
$rs = null;
}
}
return $this->productId;
}
private function runQuery( $sqlQuery ) {
$rs = mysql_query($sqlQuery, $this->dbh);
if(mysql_errno($this->dbh) > 0) {
echo "There was an error processing this request";
return;
}
return $rs;
}
public function getAllFixedBugs() {
$result = array();
$sql_info = "SELECT bugs.bug_id, bugs.short_desc FROM bugs
WHERE bugs.product_id = " . $this->getTigerstripeProductID() . " AND bugs.resolution = \"FIXED\"";
$rs = $this->runQuery($sql_info);
if ( isset($rs) ) {
while($myrow = mysql_fetch_assoc($rs)) {
$result[] = new Bug($myrow['bug_id'], $myrow['short_desc']);
}
$rs = null;
}
return $result;
}
/**
* Returns an array of Bug objects that were FIXED between $startTimestamp and $endTimestamp
*
* @param String $startTimestamp
* @param String $endTimestamp
* @return array of Bug
*/
public function getAllFixedBugsBetween( $startTimestamp, $endTimestamp ) {
#MySql expects seconds in the timestamp...
if ( strlen($startTimestamp) == 12 ) {
$startTimestamp = $startTimestamp . "00";
}
if ( strlen($endTimestamp) == 12 ) {
$endTimestamp = $endTimestamp . "59";
}
$result = array();
$sql_info = "SELECT DISTINCT bugs.bug_id, bugs.short_desc FROM bugs, bugs_activity WHERE
bugs.product_id = " . $this->getTigerstripeProductID() . " AND bugs.resolution = \"FIXED\"
AND bugs_activity.bug_id = bugs.bug_id AND bugs_activity.fieldid = 11 AND bugs_activity.added = \"FIXED\"
AND bugs_activity.bug_when <= " . $endTimestamp . " AND bugs_activity.bug_when > " . $startTimestamp;
$rs = $this->runQuery($sql_info);
if ( isset($rs) ) {
while($myrow = mysql_fetch_assoc($rs)) {
// echo $myrow['bug_id'] . "</br>";
$result[] = new Bug( $myrow['bug_id'], $myrow['short_desc']);
}
$rs = null;
}
return $result;
}
/**
* Returns an array of Bugs that were FIXED by the given Timestamp
*
* @param String $timestamp
* @return Array of Bug objects
*/
public function getAllFixedBugsBy( $timestamp ) {
return $this->getAllFixedBugsBetween( "20080101000000", $timestamp);
}
public function __destruct() {
$this->dbc->disconnect();
$this->dbh = null;
$this->dbc = null;
}
}
?>