add router.php
This commit is contained in:
		
							
								
								
									
										43
									
								
								openvpn-monitor/api/router.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								openvpn-monitor/api/router.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,43 @@ | ||||
| <?php | ||||
| require_once '../src/OpenVPNMonitor.php'; | ||||
|  | ||||
| $monitor = new OpenVPNMonitor(); | ||||
| header('Content-Type: application/json'); | ||||
|  | ||||
| $uri = $_SERVER['REQUEST_URI']; | ||||
| $method = $_SERVER['REQUEST_METHOD']; | ||||
|  | ||||
| // Удаляем префикс /api/router.php из URI | ||||
| $path = str_replace('/api/router.php', '', $uri); | ||||
| $path = trim($path, '/'); | ||||
|  | ||||
| switch ($path) { | ||||
|     case 'clients': | ||||
|         echo json_encode($monitor->getConnectedClients()); | ||||
|         break; | ||||
|  | ||||
|     case (preg_match('/^client\/(.+)$/', $path, $matches) ? true : false): | ||||
|         $clientName = urldecode($matches[1]); | ||||
|         echo json_encode($monitor->getClientDetails($clientName)); | ||||
|         break; | ||||
|  | ||||
|     case 'tls-errors': | ||||
|         echo json_encode($monitor->getTlsErrors()); | ||||
|         break; | ||||
|  | ||||
|     case 'stats': | ||||
|         echo json_encode($monitor->getStats()); | ||||
|         break; | ||||
|  | ||||
|     case 'health': | ||||
|         echo json_encode([ | ||||
|             'status' => 'ok', | ||||
|             'uptime' => $monitor->getUptime(), | ||||
|             'clients' => count($monitor->getConnectedClients()) | ||||
|         ]); | ||||
|         break; | ||||
|  | ||||
|     default: | ||||
|         http_response_code(404); | ||||
|         echo json_encode(['error' => 'Unknown endpoint']); | ||||
| } | ||||
		Reference in New Issue
	
	Block a user