From 5b6ddaa2d744dfc726829da0893a7f03c9043c8a Mon Sep 17 00:00:00 2001 From: Grant Limberg Date: Wed, 21 Oct 2015 20:29:03 -0700 Subject: Base windows UI is working. * No joining/leaving networks yet, but they do display. * Nothing is updated yet after first load of the app. Need to set up a background task to run updates. --- windows/WinUI/APIHandler.cs | 69 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 windows/WinUI/APIHandler.cs (limited to 'windows/WinUI/APIHandler.cs') diff --git a/windows/WinUI/APIHandler.cs b/windows/WinUI/APIHandler.cs new file mode 100644 index 00000000..c13bca53 --- /dev/null +++ b/windows/WinUI/APIHandler.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Net; +using System.IO; +using Newtonsoft.Json; + +namespace WinUI +{ + + + public class APIHandler + { + static string authtoken = "p3ptrzds5jkr2hbx5ipbyf04"; // delete me! + + private string url = null; + + public APIHandler() + { + url = "http://127.0.0.1:9993"; + } + + public APIHandler(string host, int port) + { + url = "http://" + host + ":" + port; + } + + public ZeroTierStatus getStatus() + { + var request = WebRequest.Create(url + "/status" + "?auth=" + authtoken) as HttpWebRequest; + if (request != null) + { + request.Method = "GET"; + request.ContentType = "application/json"; + } + + var httpResponse = (HttpWebResponse)request.GetResponse(); + using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) + { + var responseText = streamReader.ReadToEnd(); + + ZeroTierStatus status = JsonConvert.DeserializeObject(responseText); + return status; + } + } + + public List getNetworks() + { + var request = WebRequest.Create(url + "/network" + "?auth=" + authtoken) as HttpWebRequest; + if (request != 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 networkList = JsonConvert.DeserializeObject>(responseText); + return networkList; + } + } + } +} -- cgit v1.2.3 From b7b973624ad1f17e21ca72b0ffff827664d2732c Mon Sep 17 00:00:00 2001 From: Grant Limberg Date: Fri, 23 Oct 2015 15:37:36 -0700 Subject: add methods for joining/leaving networks, and getting peers --- windows/WinUI/APIHandler.cs | 70 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 65 insertions(+), 5 deletions(-) (limited to 'windows/WinUI/APIHandler.cs') diff --git a/windows/WinUI/APIHandler.cs b/windows/WinUI/APIHandler.cs index c13bca53..0755c28d 100644 --- a/windows/WinUI/APIHandler.cs +++ b/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 getNetworks() + public List 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 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 peerList = JsonConvert.DeserializeObject>(responseText); + return peerList; + } + } } } -- cgit v1.2.3 From c4c67e591bbe3cb55d6f282a9267b913c9e3f841 Mon Sep 17 00:00:00 2001 From: Grant Limberg Date: Mon, 26 Oct 2015 19:02:19 -0700 Subject: add error handling for JSON serialization --- windows/WinUI/APIHandler.cs | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) (limited to 'windows/WinUI/APIHandler.cs') diff --git a/windows/WinUI/APIHandler.cs b/windows/WinUI/APIHandler.cs index 0755c28d..8e7408a5 100644 --- a/windows/WinUI/APIHandler.cs +++ b/windows/WinUI/APIHandler.cs @@ -41,7 +41,15 @@ namespace WinUI { var responseText = streamReader.ReadToEnd(); - ZeroTierStatus status = JsonConvert.DeserializeObject(responseText); + ZeroTierStatus status = null; + try + { + status = JsonConvert.DeserializeObject(responseText); + } + catch (JsonReaderException e) + { + Console.WriteLine(e.ToString()); + } return status; } } @@ -61,9 +69,16 @@ namespace WinUI using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var responseText = streamReader.ReadToEnd(); - Console.WriteLine(responseText); - List networkList = JsonConvert.DeserializeObject>(responseText); + List networkList = null; + try + { + networkList = JsonConvert.DeserializeObject>(responseText); + } + catch (JsonReaderException e) + { + Console.WriteLine(e.ToString()); + } return networkList; } } @@ -119,9 +134,16 @@ namespace WinUI using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var responseText = streamReader.ReadToEnd(); - Console.WriteLine(responseText); - List peerList = JsonConvert.DeserializeObject>(responseText); + List peerList = null; + try + { + peerList = JsonConvert.DeserializeObject>(responseText); + } + catch (JsonReaderException e) + { + Console.WriteLine(e.ToString()); + } return peerList; } } -- cgit v1.2.3