Update status board classes to use new DatabaseObject base
Updated schema to include new views
This commit is contained in:
@@ -26,3 +26,44 @@ INSERT INTO `service` (`id`, `name`, `description`) VALUES
|
||||
(4, 'DNS', 'Hosted DNS services'),
|
||||
(5, 'LDAP', 'Hosted directory services');
|
||||
|
||||
--
|
||||
-- Dumping data for table `user`
|
||||
--
|
||||
|
||||
INSERT INTO `user` (`id`, `username`, `password`, `fullname`, `email`, `last_login`, `last_password_change`) VALUES
|
||||
(2, 'guest', '5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8', 'Guest', NULL, NULL, 1324211553);
|
||||
|
||||
--
|
||||
-- Dumping data for table `group`
|
||||
--
|
||||
|
||||
INSERT INTO `group` (`id`, `name`, `description`) VALUES
|
||||
(2, 'readonly', 'Basic group with read only access to the status boards.');
|
||||
|
||||
--
|
||||
-- Dumping data for table `usergroup`
|
||||
--
|
||||
|
||||
INSERT INTO `usergroup` (`id`, `user`, `group`, `added`) VALUES
|
||||
(1, 1, 1, 1324211572),
|
||||
(2, 2, 2, 1324211572);
|
||||
|
||||
--
|
||||
-- Dumping data for table `permission`
|
||||
--
|
||||
|
||||
INSERT INTO `permission` (`id`, `name`, `description`) VALUES
|
||||
(2, 'Update Status Boards', 'Permission to add/edit/delete any service or site.');
|
||||
(3, 'Update Incidents', 'Permission to create and update the status of any incident.'),
|
||||
(4, 'View Status Boards', 'Permission to view the status of all services and sites, and details of any incident.'),
|
||||
|
||||
--
|
||||
-- Dumping data for table `grouppermissions`
|
||||
--
|
||||
|
||||
INSERT INTO `grouppermissions` (`id`, `group`, `permission`, `added`) VALUES
|
||||
(2, 1, 2, 1324211935),
|
||||
(3, 1, 3, 1324211935),
|
||||
(4, 1, 4, 1324211935),
|
||||
(5, 2, 4, 1324211935);
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ CREATE TABLE IF NOT EXISTS `settings` (
|
||||
INSERT INTO `settings` (`name`, `value`, `type`) VALUES
|
||||
('debug.display_exceptions', '1', 'bool'),
|
||||
('cache.base_dir', '/dev/shm/status-board/', 'string'),
|
||||
('auth', 'Database', 'string'),
|
||||
('logging.plugins', 'Database\nFlatFile', 'array(string)'),
|
||||
('logging.Database', 'webui', 'array(string)'),
|
||||
('logging.Database.webui.table', 'log', 'string'),
|
||||
@@ -171,3 +172,150 @@ CREATE VIEW `incident_open` AS (
|
||||
WHERE
|
||||
`isc`.`status` IN (1,2,3,4)
|
||||
);
|
||||
|
||||
--
|
||||
-- Table structure for table `user`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `user`;
|
||||
CREATE TABLE IF NOT EXISTS `user` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`username` varchar(255) NOT NULL,
|
||||
`password` char(40) NOT NULL,
|
||||
`fullname` varchar(255) NULL,
|
||||
`email` varchar(255) NULL,
|
||||
`last_login` int(10) NULL,
|
||||
`last_password_change` int(10) NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
|
||||
|
||||
--
|
||||
-- Dumping data for table `user`
|
||||
--
|
||||
|
||||
INSERT INTO `user` (`id`, `username`, `password`, `fullname`, `email`, `last_login`, `last_password_change`) VALUES
|
||||
(1, 'admin', '5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8', 'Administrator', NULL, NULL, 1324211456);
|
||||
|
||||
--
|
||||
-- Table structure for table `group`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `group`;
|
||||
CREATE TABLE IF NOT EXISTS `group` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) NOT NULL,
|
||||
`description` text NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
|
||||
|
||||
--
|
||||
-- Dumping data for table `group`
|
||||
--
|
||||
|
||||
INSERT INTO `group` (`id`, `name`, `description`) VALUES
|
||||
(1, 'admins', 'Administrative users will full control over the status boards.');
|
||||
|
||||
--
|
||||
-- Table structure for table `usergroup`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `usergroup`;
|
||||
CREATE TABLE IF NOT EXISTS `usergroup` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`user` int(10) unsigned NOT NULL,
|
||||
`group` int(10) unsigned NOT NULL,
|
||||
`added` int(10) unsigned NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
|
||||
|
||||
--
|
||||
-- Dumping data for table `usergroup`
|
||||
--
|
||||
|
||||
INSERT INTO `usergroup` (`id`, `user`, `group`, `added`) VALUES
|
||||
(1, 1, 1, 1324211572);
|
||||
|
||||
--
|
||||
-- Table structure for view `groups_by_user`
|
||||
--
|
||||
|
||||
DROP VIEW IF EXISTS `groups_by_user`;
|
||||
CREATE VIEW `groups_by_user` AS (
|
||||
SELECT
|
||||
`u`.`id` AS `user`,
|
||||
`g`.*
|
||||
FROM
|
||||
`usergroup` as `ug`
|
||||
LEFT JOIN `user` AS `u` ON `ug`.`user`=`u`.`id`
|
||||
LEFT JOIN `group` AS `g` ON `ug`.`group`=`g`.`id`
|
||||
);
|
||||
|
||||
--
|
||||
-- Table structure for table `permission`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `permission`;
|
||||
CREATE TABLE IF NOT EXISTS `permission` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) NOT NULL,
|
||||
`description` text NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
|
||||
|
||||
--
|
||||
-- Dumping data for table `permission`
|
||||
--
|
||||
|
||||
INSERT INTO `permission` (`id`, `name`, `description`) VALUES
|
||||
(1, 'Administrator', 'Full administrative rights.');
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `grouppermissions`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `grouppermission`;
|
||||
CREATE TABLE IF NOT EXISTS `grouppermission` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`group` int(10) unsigned NOT NULL,
|
||||
`permission` int(10) unsigned NOT NULL,
|
||||
`added` int(10) unsigned NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
|
||||
|
||||
--
|
||||
-- Dumping data for table `grouppermissions`
|
||||
--
|
||||
|
||||
INSERT INTO `grouppermissions` (`id`, `group`, `permission`, `added`) VALUES
|
||||
(1, 1, 1, 1324211935);
|
||||
|
||||
--
|
||||
-- Table structure for view `permissions_by_group`
|
||||
--
|
||||
|
||||
DROP VIEW IF EXISTS `permissions_by_group`;
|
||||
CREATE VIEW `permissions_by_group` AS (
|
||||
SELECT
|
||||
`g`.`id` AS `group`,
|
||||
`p`.*
|
||||
FROM
|
||||
`grouppermission` as `gp`
|
||||
LEFT JOIN `group` AS `g` ON `gp`.`group`=`g`.`id`
|
||||
LEFT JOIN `permission` AS `p` on `gp`.`permission`=`p`.`id`
|
||||
);
|
||||
|
||||
--
|
||||
-- Table structure for view `permissions_by_user`
|
||||
--
|
||||
|
||||
DROP VIEW IF EXISTS `permissions_by_user`;
|
||||
CREATE VIEW `permissions_by_user` AS (
|
||||
SELECT
|
||||
`u`.`id` AS `user`,
|
||||
`p`.*
|
||||
FROM
|
||||
`usergroup` as `ug`
|
||||
LEFT JOIN `user` AS `u` ON `ug`.`user`=`u`.`id`
|
||||
LEFT JOIN `permissions_by_group` AS `p` on `ug`.`group`=`p`.`group`
|
||||
);
|
||||
|
||||
@@ -1,87 +1,28 @@
|
||||
<?php
|
||||
|
||||
class StatusBoard_Incident {
|
||||
class StatusBoard_Incident extends StatusBoard_DatabaseObject {
|
||||
|
||||
protected $id;
|
||||
protected $site;
|
||||
protected $reference;
|
||||
protected $description;
|
||||
protected $start_time;
|
||||
protected $estimated_end_time;
|
||||
protected $actual_end_time;
|
||||
protected static $table = 'incident';
|
||||
|
||||
protected $current_status;
|
||||
protected $_db_id;
|
||||
protected $_db_site;
|
||||
protected $_db_reference;
|
||||
protected $_db_description;
|
||||
protected $_db_start_time;
|
||||
protected $_db_estimated_end_time;
|
||||
protected $_db_actual_end_time;
|
||||
|
||||
protected function __construct($id, $site, $reference, $description, $start_time, $estimated_end_time, $actual_end_time) {
|
||||
$this->id = $id;
|
||||
$this->site = $site;
|
||||
$this->reference = $reference;
|
||||
$this->description = $description;
|
||||
$this->start_time = $start_time;
|
||||
$this->estimated_end_time = $estimated_end_time;
|
||||
$this->actual_end_time = $actual_end_time;
|
||||
}
|
||||
|
||||
public static function fromDatabaseRow($row) {
|
||||
return new self(
|
||||
$row['id'],
|
||||
$row['site'],
|
||||
$row['reference'],
|
||||
$row['description'],
|
||||
$row['start_time'],
|
||||
$row['estimated_end_time'],
|
||||
$row['actual_end_time']
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Load an Incident object given its ID
|
||||
*
|
||||
* @param int $id
|
||||
* @return StatusBoard_Incident
|
||||
*/
|
||||
public static function fromId($id) {
|
||||
$database = StatusBoard_Main::instance()->database();
|
||||
|
||||
$incident = self::fromDatabaseRow(
|
||||
$database->selectOne('SELECT * FROM `incident` WHERE id=:id', array(
|
||||
array('name' => 'id', 'value' => $id, 'type' => PDO::PARAM_INT)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
return $incident;
|
||||
}
|
||||
|
||||
public static function all() {
|
||||
$incidents = array();
|
||||
|
||||
$database = StatusBoard_Main::instance()->database();
|
||||
foreach ($database->selectList('SELECT * FROM `incident` WHERE `id` > 0 ORDER BY `id` DESC') as $row) {
|
||||
$incidents[] = self::fromDatabaseRow($row);
|
||||
}
|
||||
|
||||
return $incidents;
|
||||
}
|
||||
protected $current_status = null;
|
||||
|
||||
public static function open_for_site(StatusBoard_Site $site) {
|
||||
$incidents = array();
|
||||
|
||||
$database = StatusBoard_Main::instance()->database();
|
||||
foreach ($database->selectList('SELECT * FROM `incident_open` WHERE `site`=:site ORDER BY `id` DESC', array(
|
||||
array('name' => 'site', 'value' => $site->id(), 'type' => PDO::PARAM_INT),
|
||||
)) as $row) {
|
||||
$incidents[] = self::fromDatabaseRow($row);
|
||||
}
|
||||
|
||||
return $incidents;
|
||||
return static::all_for('site', $site->id, 'incident_open');
|
||||
}
|
||||
|
||||
public function currentStatus($ignore_cache = false) {
|
||||
if ($this->current_status === null || $ignore_cache) {
|
||||
$database = StatusBoard_Main::instance()->database();
|
||||
$row = $database->selectOne('SELECT `status` FROM `incidentstatus_current` WHERE `incident`=:incident', array(
|
||||
array('name' => 'incident', 'value' => $this->id(), 'type' => PDO::PARAM_INT),
|
||||
array('name' => 'incident', 'value' => $this->id, 'type' => PDO::PARAM_INT),
|
||||
)
|
||||
);
|
||||
|
||||
@@ -113,65 +54,6 @@ class StatusBoard_Incident {
|
||||
return $status;
|
||||
}
|
||||
|
||||
protected function create() {
|
||||
$database = StatusBoard_Main::instance()->database();
|
||||
$database->insert(
|
||||
'INSERT INTO `service`
|
||||
(`id`, `site`, `reference`, `description`, `start_time`, `estimated_end_time`, `actual_end_time`)
|
||||
VALUES(NULL, :site, :reference, :description, :start_time, :estimated_end_time, :actual_end_time)',
|
||||
array(
|
||||
array('name' => 'site', 'value' => $this->site, 'type' => PDO::PARAM_INT),
|
||||
array('name' => 'reference', 'value' => $this->reference, 'type' => PDO::PARAM_STR),
|
||||
array('name' => 'description', 'value' => $this->description, 'type' => PDO::PARAM_STR),
|
||||
array('name' => 'start_time', 'value' => $this->start_time, 'type' => PDO::PARAM_INT),
|
||||
array('name' => 'estimated_end_time', 'value' => $this->estimated_end_time, 'type' => PDO::PARAM_INT),
|
||||
array('name' => 'actual_end_time', 'value' => $this->actual_end_time, 'type' => PDO::PARAM_INT),
|
||||
)
|
||||
);
|
||||
|
||||
$this->id = $database->lastInsertId();
|
||||
}
|
||||
|
||||
public function delete() {
|
||||
$database = StatusBoard_Main::instance()->database();
|
||||
$database->update(
|
||||
'DELETE FROM `incident` WHERE `id`=:id LIMIT 1',
|
||||
array(
|
||||
array('name' => 'id', 'value' => $this->id, 'type' => PDO::PARAM_INT),
|
||||
)
|
||||
);
|
||||
|
||||
$this->id = null;
|
||||
}
|
||||
|
||||
public function id() {
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function site() {
|
||||
return $this->site;
|
||||
}
|
||||
|
||||
public function reference() {
|
||||
return $this->reference;
|
||||
}
|
||||
|
||||
public function description() {
|
||||
return $this->description;
|
||||
}
|
||||
|
||||
public function start_time() {
|
||||
return $this->start_time;
|
||||
}
|
||||
|
||||
public function estimated_end_time() {
|
||||
return $this->estimated_end_time;
|
||||
}
|
||||
|
||||
public function actual_end_time() {
|
||||
return $this->actual_end_time;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -1,82 +1,13 @@
|
||||
<?php
|
||||
|
||||
class StatusBoard_IncidentStatus {
|
||||
class StatusBoard_IncidentStatus extends StatusBoard_DatabaseObject {
|
||||
|
||||
protected $id;
|
||||
protected $incident;
|
||||
protected $status;
|
||||
protected $ctime;
|
||||
|
||||
protected function __construct($id, $incident, $status, $ctime) {
|
||||
$this->id = $id;
|
||||
$this->incident = $incident;
|
||||
$this->status = $status;
|
||||
$this->ctime = $ctime;
|
||||
}
|
||||
|
||||
/**
|
||||
* Load an Incident object given its ID
|
||||
*
|
||||
* @param int $id
|
||||
* @return StatusBoard_Incident
|
||||
*/
|
||||
public static function fromId($id) {
|
||||
$database = StatusBoard_Main::instance()->database();
|
||||
|
||||
$incident_status = self::fromDatabaseRow(
|
||||
$database->selectOne('SELECT * FROM `incidentstatus` WHERE id=:id', array(
|
||||
array('name' => 'id', 'value' => $id, 'type' => PDO::PARAM_INT)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
return $incident_status;
|
||||
}
|
||||
|
||||
protected function create() {
|
||||
$database = StatusBoard_Main::instance()->database();
|
||||
$database->insert(
|
||||
'INSERT INTO `incidentstatus`
|
||||
(`id`, `incident`, `status`, `ctime`)
|
||||
VALUES(NULL, :incident, :status, :ctime)',
|
||||
array(
|
||||
array('name' => 'incident', 'value' => $this->incident, 'type' => PDO::PARAM_INT),
|
||||
array('name' => 'status', 'value' => $this->status, 'type' => PDO::PARAM_STR),
|
||||
array('name' => 'ctime', 'value' => $this->ctime, 'type' => PDO::PARAM_STR),
|
||||
)
|
||||
);
|
||||
|
||||
$this->id = $database->lastInsertId();
|
||||
}
|
||||
|
||||
public function delete() {
|
||||
$database = StatusBoard_Main::instance()->database();
|
||||
$database->update(
|
||||
'DELETE FROM `incidentstatus` WHERE `id`=:id LIMIT 1',
|
||||
array(
|
||||
array('name' => 'id', 'value' => $this->id, 'type' => PDO::PARAM_INT),
|
||||
)
|
||||
);
|
||||
|
||||
$this->id = null;
|
||||
}
|
||||
|
||||
public function id() {
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function incident() {
|
||||
return $this->incident;
|
||||
}
|
||||
|
||||
public function status() {
|
||||
return $this->status;
|
||||
}
|
||||
|
||||
public function ctime() {
|
||||
return $this->ctime;
|
||||
}
|
||||
protected static $table = 'incidentstatus';
|
||||
|
||||
protected $_db_id;
|
||||
protected $_db_incident;
|
||||
protected $_db_status;
|
||||
protected $_db_ctime;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,83 +1,14 @@
|
||||
<?php
|
||||
|
||||
class StatusBoard_Service {
|
||||
class StatusBoard_Service extends StatusBoard_DatabaseObject {
|
||||
|
||||
protected $id;
|
||||
protected $name;
|
||||
protected $description;
|
||||
protected static $table = 'service';
|
||||
|
||||
protected $sites;
|
||||
protected $_db_id;
|
||||
protected $_db_name;
|
||||
protected $_db_description;
|
||||
|
||||
protected function __construct($id, $name, $description) {
|
||||
$this->id = $id;
|
||||
$this->name = $name;
|
||||
$this->description = $description;
|
||||
}
|
||||
|
||||
public static function fromDatabaseRow($row) {
|
||||
return new self(
|
||||
$row['id'],
|
||||
$row['name'],
|
||||
$row['description']
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Load a Service object given its ID
|
||||
*
|
||||
* @param int $id
|
||||
* @return StatusBoard_Service
|
||||
*/
|
||||
public static function fromId($id) {
|
||||
$database = StatusBoard_Main::instance()->database();
|
||||
|
||||
$service = self::fromDatabaseRow(
|
||||
$database->selectOne('SELECT * FROM `service` WHERE id=:id', array(
|
||||
array('name' => 'id', 'value' => $id, 'type' => PDO::PARAM_INT)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
return $service;
|
||||
}
|
||||
|
||||
public static function all() {
|
||||
$services = array();
|
||||
|
||||
$database = StatusBoard_Main::instance()->database();
|
||||
foreach ($database->selectList('SELECT * FROM `service` WHERE `id` > 0 ORDER BY `id` DESC') as $row) {
|
||||
$services[] = self::fromDatabaseRow($row);
|
||||
}
|
||||
|
||||
return $services;
|
||||
}
|
||||
|
||||
protected function create() {
|
||||
$database = StatusBoard_Main::instance()->database();
|
||||
$database->insert(
|
||||
'INSERT INTO `service`
|
||||
(`id`, `name`, `description`)
|
||||
VALUES(NULL, :name, :description)',
|
||||
array(
|
||||
array('name' => 'name', 'value' => $this->name, 'type' => PDO::PARAM_STR),
|
||||
array('name' => 'description', 'value' => $this->description, 'type' => PDO::PARAM_STR),
|
||||
)
|
||||
);
|
||||
|
||||
$this->id = $database->lastInsertId();
|
||||
}
|
||||
|
||||
public function delete() {
|
||||
$database = StatusBoard_Main::instance()->database();
|
||||
$database->update(
|
||||
'DELETE FROM `service` WHERE `id`=:id LIMIT 1',
|
||||
array(
|
||||
array('name' => 'id', 'value' => $this->id, 'type' => PDO::PARAM_INT),
|
||||
)
|
||||
);
|
||||
|
||||
$this->id = null;
|
||||
}
|
||||
protected $sites = null;
|
||||
|
||||
public function sites($ignore_cache = false) {
|
||||
if ($this->sites === null || $ignore_cache) {
|
||||
@@ -87,18 +18,6 @@ class StatusBoard_Service {
|
||||
return $this->sites;
|
||||
}
|
||||
|
||||
public function id() {
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function name() {
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
public function description() {
|
||||
return $this->description;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,100 +1,19 @@
|
||||
<?php
|
||||
|
||||
class StatusBoard_Site {
|
||||
class StatusBoard_Site extends StatusBoard_DatabaseObject {
|
||||
|
||||
protected $id;
|
||||
protected $service;
|
||||
protected $name;
|
||||
protected $description;
|
||||
protected static $table = 'site';
|
||||
|
||||
protected $incidents;
|
||||
protected $incidents_open;
|
||||
protected $_db_id;
|
||||
protected $_db_service;
|
||||
protected $_db_name;
|
||||
protected $_db_description;
|
||||
|
||||
protected function __construct($id, $service, $name, $description) {
|
||||
$this->id = $id;
|
||||
$this->service = $service;
|
||||
$this->name = $name;
|
||||
$this->description = $description;
|
||||
}
|
||||
|
||||
public static function fromDatabaseRow($row) {
|
||||
return new self(
|
||||
$row['id'],
|
||||
$row['service'],
|
||||
$row['name'],
|
||||
$row['description']
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Load a Site object given its ID
|
||||
*
|
||||
* @param int $id
|
||||
* @return StatusBoard_Site
|
||||
*/
|
||||
public static function fromId($id) {
|
||||
$database = StatusBoard_Main::instance()->database();
|
||||
|
||||
$site = self::fromDatabaseRow(
|
||||
$database->selectOne('SELECT * FROM `site` WHERE id=:id', array(
|
||||
array('name' => 'id', 'value' => $id, 'type' => PDO::PARAM_INT)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
return $site;
|
||||
}
|
||||
|
||||
public static function all() {
|
||||
$sites = array();
|
||||
|
||||
$database = StatusBoard_Main::instance()->database();
|
||||
foreach ($database->selectList('SELECT * FROM `site` WHERE `id` > 0 ORDER BY `id` DESC') as $row) {
|
||||
$sites[] = self::fromDatabaseRow($row);
|
||||
}
|
||||
|
||||
return $sites;
|
||||
}
|
||||
protected $incidents = null;
|
||||
protected $incidents_open = null;
|
||||
|
||||
public static function all_for_service(StatusBoard_Service $service) {
|
||||
$sites = array();
|
||||
|
||||
$database = StatusBoard_Main::instance()->database();
|
||||
foreach ($database->selectList('SELECT * FROM `site` WHERE `service`=:service ORDER BY `id` DESC', array(
|
||||
array('name' => 'service', 'value' => $service->id(), 'type' => PDO::PARAM_INT),
|
||||
)) as $row) {
|
||||
$sites[] = self::fromDatabaseRow($row);
|
||||
}
|
||||
|
||||
return $sites;
|
||||
}
|
||||
|
||||
protected function create() {
|
||||
$database = StatusBoard_Main::instance()->database();
|
||||
$database->insert(
|
||||
'INSERT INTO `service`
|
||||
(`id`, `service`, `name`, `description`)
|
||||
VALUES(NULL, :service, :name, :description)',
|
||||
array(
|
||||
array('name' => 'service', 'value' => $this->service, 'type' => PDO::PARAM_INT),
|
||||
array('name' => 'name', 'value' => $this->name, 'type' => PDO::PARAM_STR),
|
||||
array('name' => 'description', 'value' => $this->description, 'type' => PDO::PARAM_STR),
|
||||
)
|
||||
);
|
||||
|
||||
$this->id = $database->lastInsertId();
|
||||
}
|
||||
|
||||
public function delete() {
|
||||
$database = StatusBoard_Main::instance()->database();
|
||||
$database->update(
|
||||
'DELETE FROM `site` WHERE `id`=:id LIMIT 1',
|
||||
array(
|
||||
array('name' => 'id', 'value' => $this->id, 'type' => PDO::PARAM_INT),
|
||||
)
|
||||
);
|
||||
|
||||
$this->id = null;
|
||||
return static::all_for('service', $service->id);
|
||||
}
|
||||
|
||||
public function openIncidents() {
|
||||
@@ -109,23 +28,6 @@ class StatusBoard_Site {
|
||||
return StatusBoard_Incident::highestSeverityStatus($this->openIncidents());
|
||||
}
|
||||
|
||||
public function id() {
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function service() {
|
||||
return $this->service;
|
||||
}
|
||||
|
||||
public function name() {
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
public function description() {
|
||||
return $this->description;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user