Esempio n. 1
0
 public function xListEventsAction()
 {
     $this->request->defineParams(array('farmId' => array('type' => 'int'), 'eventServerId', 'eventId', 'query' => array('type' => 'string'), 'sort' => array('type' => 'string', 'default' => 'id'), 'dir' => array('type' => 'string', 'default' => 'DESC')));
     $sql = "SELECT farmid, message, type, dtadded, event_server_id, event_id FROM events WHERE farmid='{$this->dbFarm->ID}'";
     if ($this->getParam('eventServerId')) {
         $sql .= " AND event_server_id = " . $this->db->qstr($this->getParam('eventServerId'));
     }
     if ($this->getParam('eventId')) {
         $sql .= " AND event_id = " . $this->db->qstr($this->getParam('eventId'));
     }
     $response = $this->buildResponseFromSql($sql, array("message", "type", "dtadded", "event_server_id", "event_id"));
     $cache = array();
     foreach ($response['data'] as &$row) {
         $row['message'] = nl2br($row['message']);
         $row["dtadded"] = Scalr_Util_DateTime::convertTz($row["dtadded"]);
         $row['scripts'] = $this->db->GetOne("SELECT COUNT(*) FROM scripting_log WHERE event_id = ?", array($row['event_id']));
         if ($row['event_server_id']) {
             $esInfo = $this->db->GetRow("SELECT role_id, farm_roleid, `index`, farm_id FROM servers WHERE server_id = ? LIMIT 1", array($row['event_server_id']));
             if ($esInfo) {
                 if (!$cache['farm_names'][$esInfo['farm_id']]) {
                     $cache['farm_names'][$esInfo['farm_id']] = $this->db->GetOne("SELECT name FROM farms WHERE id=?", array($esInfo['farm_id']));
                 }
                 $row['event_farm_name'] = $cache['farm_names'][$esInfo['farm_id']];
                 $row['event_farm_id'] = $esInfo['farm_id'];
                 $row['event_farm_roleid'] = $esInfo['farm_roleid'];
                 if (!$cache['role_names'][$esInfo['role_id']]) {
                     $cache['role_names'][$esInfo['role_id']] = $this->db->GetOne("SELECT name FROM roles WHERE id=?", array($esInfo['role_id']));
                 }
                 $row['event_role_name'] = $cache['role_names'][$esInfo['role_id']];
                 $row['event_server_index'] = $esInfo['index'];
             }
         }
         $row['webhooks_count'] = count(WebhookHistory::findByEventId($row['event_id']));
     }
     $this->response->data($response);
 }