false, 'message' => __('Method not allowed', 'urbackup')]); exit; } if (!Profile::canCurrentUser(UPDATE)) { http_response_code(403); echo json_encode(['success' => false, 'message' => __('No permission', 'urbackup')]); exit; } $server_id = (int) ($_POST['id'] ?? 0); if ($server_id <= 0) { echo json_encode(['success' => false, 'message' => __('Invalid server ID', 'urbackup')]); exit; } $server = new Server(); if (!$server->getFromDB($server_id)) { echo json_encode(['success' => false, 'message' => __('Server not found', 'urbackup')]); exit; } try { $client = new 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()]); }