Issue #11 - TDD to get future and past outages (outagedb).

This commit is contained in:
Daniel Thee Roperto
2016-09-12 12:10:22 +10:00
parent 9f2c5b08d8
commit 22f85930ce
2 changed files with 126 additions and 4 deletions

View File

@@ -169,10 +169,7 @@ class outagedb {
}
/**
* Gets all active outages, sorted by importance as:
* - Ongoing outages more important than outages in warning period.
* - Outages that start earlier are more important.
* - Outages that stop later are more important.
* Gets all active outages (including in warning period).
* @param int|null $time Timestamp considered to check for outages, null for current date/time.
* @return array An array of outages or an empty array if no active outage found.
*/
@@ -201,4 +198,67 @@ class outagedb {
return $outages;
}
/**
* Gets all future outages not in warning period.
* @param int|null $time Timestamp considered to check for outages, null for current date/time.
* @return array An array of outages or an empty array if no future outage found.
*/
public static function get_all_future($time = null) {
global $DB;
if ($time === null) {
$time = time();
}
if (!is_int($time)) {
throw new \InvalidArgumentException('$time must be null or an int.');
}
$outages = [];
$rs = $DB->get_recordset_select(
'auth_outage',
'warntime > :datetime',
['datetime' => $time],
'starttime ASC, stoptime DESC, title ASC',
'*');
foreach ($rs as $r) {
$outages[] = new outage($r);
}
$rs->close();
return $outages;
}
/**
* Gets all past outages.
* @param int|null $time Timestamp considered to check for outages, null for current date/time.
* @return array An array of outages or an empty array if no past outage found.
*/
public static function get_all_past($time = null) {
global $DB;
if ($time === null) {
$time = time();
}
if (!is_int($time)) {
throw new \InvalidArgumentException('$time must be null or an int.');
}
$outages = [];
$rs = $DB->get_recordset_select(
'auth_outage',
'stoptime < :datetime',
['datetime' => $time],
'stoptime DESC, starttime DESC, title ASC',
'*');
foreach ($rs as $r) {
$outages[] = new outage($r);
}
$rs->close();
return $outages;
}
}