false, 'message' => 'No permission']); exit; } $server_id = (int) ($_POST['id'] ?? $_GET['id'] ?? 0); if ($server_id <= 0) { echo json_encode(['success' => false, 'message' => 'Invalid server ID']); exit; } $server = new GlpiPlugin\Urbackup\Server(); if (!$server->getFromDB($server_id)) { echo json_encode(['success' => false, 'message' => 'Server not found']); exit; } try { $client = new GlpiPlugin\Urbackup\UrbackupApiClient($server); $result = $client->testConnection(); $server->update([ 'id' => $server_id, 'last_api_status' => $result['success'] ? 1 : 0, 'last_api_message' => $result['message'], 'last_api_check' => date('Y-m-d H:i:s'), ]); echo json_encode($result); } catch (Throwable $e) { echo json_encode(['success' => false, 'message' => $e->getMessage()]); }