api.php (4203B)
1 <?php 2 class ModelUserApi extends Model { 3 public function addApi($data) { 4 $this->db->query("INSERT INTO `" . DB_PREFIX . "api` SET username = '" . $this->db->escape($data['username']) . "', `key` = '" . $this->db->escape($data['key']) . "', status = '" . (int)$data['status'] . "', date_added = NOW(), date_modified = NOW()"); 5 6 $api_id = $this->db->getLastId(); 7 8 if (isset($data['api_ip'])) { 9 foreach ($data['api_ip'] as $ip) { 10 if ($ip) { 11 $this->db->query("INSERT INTO `" . DB_PREFIX . "api_ip` SET api_id = '" . (int)$api_id . "', ip = '" . $this->db->escape($ip) . "'"); 12 } 13 } 14 } 15 16 return $api_id; 17 } 18 19 public function editApi($api_id, $data) { 20 $this->db->query("UPDATE `" . DB_PREFIX . "api` SET username = '" . $this->db->escape($data['username']) . "', `key` = '" . $this->db->escape($data['key']) . "', status = '" . (int)$data['status'] . "', date_modified = NOW() WHERE api_id = '" . (int)$api_id . "'"); 21 22 $this->db->query("DELETE FROM " . DB_PREFIX . "api_ip WHERE api_id = '" . (int)$api_id . "'"); 23 24 if (isset($data['api_ip'])) { 25 foreach ($data['api_ip'] as $ip) { 26 if ($ip) { 27 $this->db->query("INSERT INTO `" . DB_PREFIX . "api_ip` SET api_id = '" . (int)$api_id . "', ip = '" . $this->db->escape($ip) . "'"); 28 } 29 } 30 } 31 } 32 33 public function deleteApi($api_id) { 34 $this->db->query("DELETE FROM `" . DB_PREFIX . "api` WHERE api_id = '" . (int)$api_id . "'"); 35 } 36 37 public function getApi($api_id) { 38 $query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "api` WHERE api_id = '" . (int)$api_id . "'"); 39 40 return $query->row; 41 } 42 43 public function getApis($data = array()) { 44 $sql = "SELECT * FROM `" . DB_PREFIX . "api`"; 45 46 $sort_data = array( 47 'username', 48 'status', 49 'date_added', 50 'date_modified' 51 ); 52 53 if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { 54 $sql .= " ORDER BY " . $data['sort']; 55 } else { 56 $sql .= " ORDER BY username"; 57 } 58 59 if (isset($data['order']) && ($data['order'] == 'DESC')) { 60 $sql .= " DESC"; 61 } else { 62 $sql .= " ASC"; 63 } 64 65 if (isset($data['start']) || isset($data['limit'])) { 66 if ($data['start'] < 0) { 67 $data['start'] = 0; 68 } 69 70 if ($data['limit'] < 1) { 71 $data['limit'] = 20; 72 } 73 74 $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; 75 } 76 77 $query = $this->db->query($sql); 78 79 return $query->rows; 80 } 81 82 public function getTotalApis() { 83 $query = $this->db->query("SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "api`"); 84 85 return $query->row['total']; 86 } 87 88 public function addApiIp($api_id, $ip) { 89 $this->db->query("INSERT INTO `" . DB_PREFIX . "api_ip` SET api_id = '" . (int)$api_id . "', ip = '" . $this->db->escape($ip) . "'"); 90 } 91 92 public function getApiIps($api_id) { 93 $query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "api_ip` WHERE api_id = '" . (int)$api_id . "'"); 94 95 return $query->rows; 96 } 97 98 public function addApiSession($api_id, $session_id, $ip) { 99 $api_ip_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "api_ip` WHERE ip = '" . $this->db->escape($ip) . "'"); 100 101 if (!$api_ip_query->num_rows) { 102 $this->db->query("INSERT INTO `" . DB_PREFIX . "api_ip` SET api_id = '" . (int)$api_id . "', ip = '" . $this->db->escape($ip) . "'"); 103 } 104 105 $this->db->query("INSERT INTO `" . DB_PREFIX . "api_session` SET api_id = '" . (int)$api_id . "', session_id = '" . $this->db->escape($session_id) . "', ip = '" . $this->db->escape($ip) . "', date_added = NOW(), date_modified = NOW()"); 106 107 return $this->db->getLastId(); 108 } 109 110 public function getApiSessions($api_id) { 111 $query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "api_session` WHERE api_id = '" . (int)$api_id . "'"); 112 113 return $query->rows; 114 } 115 116 public function deleteApiSession($api_session_id) { 117 $this->db->query("DELETE FROM `" . DB_PREFIX . "api_session` WHERE api_session_id = '" . (int)$api_session_id . "'"); 118 } 119 120 public function deleteApiSessionBySessonId($session_id) { 121 $this->db->query("DELETE FROM `" . DB_PREFIX . "api_session` WHERE session_id = '" . $this->db->escape($session_id) . "'"); 122 } 123 }