浏览代码

add methods for joining/leaving networks, and getting peers

Grant Limberg 9 年之前
父节点
当前提交
b7b973624a
共有 1 个文件被更改,包括 65 次插入5 次删除
  1. 65 5
      windows/WinUI/APIHandler.cs

+ 65 - 5
windows/WinUI/APIHandler.cs

@@ -27,7 +27,7 @@ namespace WinUI
             url = "http://" + host + ":" + port;
         }
 
-        public ZeroTierStatus getStatus()
+        public ZeroTierStatus GetStatus()
         {
             var request = WebRequest.Create(url + "/status" + "?auth=" + authtoken) as HttpWebRequest;
             if (request != null)
@@ -46,15 +46,17 @@ namespace WinUI
             }
         }
 
-        public List<ZeroTierNetwork> getNetworks()
+        public List<ZeroTierNetwork> GetNetworks()
         {
             var request = WebRequest.Create(url + "/network" + "?auth=" + authtoken) as HttpWebRequest;
-            if (request != null)
+            if (request == null)
             {
-                request.Method = "GET";
-                request.ContentType = "application/json";
+                return null;
             }
 
+            request.Method = "GET";
+            request.ContentType = "application/json";
+
             var httpResponse = (HttpWebResponse)request.GetResponse();
             using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
             {
@@ -65,5 +67,63 @@ namespace WinUI
                 return networkList;
             }
         }
+
+        public void JoinNetwork(string nwid)
+        {
+            var request = WebRequest.Create(url + "/network/" + nwid + "?auth=" + authtoken) as HttpWebRequest;
+            if (request == null)
+            {
+                return;
+            }
+
+            request.Method = "POST";
+
+            var httpResponse = (HttpWebResponse)request.GetResponse();
+
+            if (httpResponse.StatusCode != HttpStatusCode.OK)
+            {
+                Console.WriteLine("Error sending join network message");
+            }
+        }
+
+        public void LeaveNetwork(string nwid)
+        {
+            var request = WebRequest.Create(url + "/network/" + nwid + "?auth=" + authtoken) as HttpWebRequest;
+            if (request == null)
+            {
+                return;
+            }
+
+            request.Method = "DELETE";
+
+            var httpResponse = (HttpWebResponse)request.GetResponse();
+
+            if (httpResponse.StatusCode != HttpStatusCode.OK)
+            {
+                Console.WriteLine("Error sending leave network message");
+            }
+        }
+
+        public List<ZeroTierPeer> GetPeers()
+        {
+            var request = WebRequest.Create(url + "/peer" + "?auth=" + authtoken) as HttpWebRequest;
+            if (request == null)
+            {
+                return null;
+            }
+
+            request.Method = "GET";
+            request.ContentType = "application/json";
+
+            var httpResponse = (HttpWebResponse)request.GetResponse();
+            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
+            {
+                var responseText = streamReader.ReadToEnd();
+                Console.WriteLine(responseText);
+
+                List<ZeroTierPeer> peerList = JsonConvert.DeserializeObject<List<ZeroTierPeer>>(responseText);
+                return peerList;
+            }
+        }
     }
 }