| 
									
										
										
										
											2024-09-16 14:09:37 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Log { | 
					
						
							|  |  |  |     private $db; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function __construct($database) { | 
					
						
							|  |  |  |         $this->db = $database->getConnection(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // insert log event
 | 
					
						
							|  |  |  |     public function insertLog($user_id, $message, $scope='user') { | 
					
						
							|  |  |  |         try { | 
					
						
							|  |  |  |             $sql = 'INSERT INTO logs | 
					
						
							|  |  |  |                         (user_id, scope, message) | 
					
						
							|  |  |  |                     VALUES | 
					
						
							|  |  |  |                         (:user_id, :scope, :message)'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             $query = $this->db->prepare($sql); | 
					
						
							|  |  |  |             $query->execute([ | 
					
						
							|  |  |  |                 ':user_id'		=> $user_id, | 
					
						
							|  |  |  |                 ':scope'		=> $scope, | 
					
						
							|  |  |  |                 ':message'		=> $message, | 
					
						
							|  |  |  |             ]); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             return true; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         } catch (Exception $e) { | 
					
						
							|  |  |  |             return $e->getMessage(); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // read logs
 | 
					
						
							| 
									
										
										
										
											2024-09-16 16:08:03 +00:00
										 |  |  |     public function readLog($user_id, $scope, $offset=0, $items_per_page='') { | 
					
						
							| 
									
										
										
										
											2024-09-16 14:09:37 +00:00
										 |  |  |         if ($scope === 'user') { | 
					
						
							| 
									
										
										
										
											2024-09-16 16:08:03 +00:00
										 |  |  |             $sql = 'SELECT * FROM logs WHERE user_id = :user_id ORDER BY time DESC'; | 
					
						
							|  |  |  |             if ($items_per_page) { | 
					
						
							|  |  |  |                 $items_per_page = (int)$items_per_page; | 
					
						
							|  |  |  |                 $sql .= ' LIMIT ' . $offset . ',' . $items_per_page; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-09-16 14:09:37 +00:00
										 |  |  |             $query = $this->db->prepare($sql); | 
					
						
							|  |  |  |             $query->execute([ | 
					
						
							|  |  |  |                 ':user_id'		=> $user_id, | 
					
						
							|  |  |  |             ]); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         if ($scope === 'system') { | 
					
						
							| 
									
										
										
										
											2024-09-16 16:08:03 +00:00
										 |  |  |             $sql = 'SELECT * FROM logs ORDER BY time DESC'; | 
					
						
							|  |  |  |             if ($items_per_page) { | 
					
						
							|  |  |  |                 $items_per_page = (int)$items_per_page; | 
					
						
							|  |  |  |                 $sql .= ' LIMIT ' . $offset . ',' . $items_per_page; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-09-16 14:09:37 +00:00
										 |  |  |             $query = $this->db->prepare($sql); | 
					
						
							|  |  |  |             $query->execute(); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return $query->fetchAll(PDO::FETCH_ASSOC); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ?>
 |