private IEnumerator SendPut <T> (setResult <T> setter) { Debug.Log("SENT " + qStr); UnityWebRequest webReq = UnityWebRequest.Get(qStr); yield return(webReq.Send()); if (webReq.isError) { Debug.Log(webReq.error); } else { // Show results as text Debug.Log("Got TEXT " + webReq.downloadHandler.text); _Message = JsonUtility.FromJson <JSNDropMessage>(webReq.downloadHandler.text); _result = webReq.downloadHandler.text; // a bit messy var aResult = JsonUtility.FromJson <T>(webReq.downloadHandler.text); Debug.Log(aResult.ToString()); List <T> theList = new List <T>(); setter(theList); } }
// Method to Push/Put data into the JSNdrop database private IEnumerator SendPut <T>(setResult <T> setter) { Debug.Log("SENT " + qStr); // Log whats sent UnityWebRequest webReq = UnityWebRequest.Get(qStr); // Create Web Request conatining put request string yield return(webReq.Send()); // send the request and exit method remembering where upto in method for when done if (webReq.isNetworkError) // Network error { Debug.Log(webReq.error); //Log Error } else { // Show results as text because send was successful Debug.Log("Got TEXT " + webReq.downloadHandler.text); try // Error handle incase of errors { //Convert returned JSN data into message class object _Message = JsonUtility.FromJson <JSNDropMessage>(webReq.downloadHandler.text); if (_Message.Type == "INSERT" || _Message.Type == "UPDATE") // Confirm it is as expected and log { Debug.Log(_Message.Type + " Successfull!"); } List <T> theList = new List <T>(); // Create empty list for returning as requires List for return to work setter(theList); // Return to caller the list } catch (Exception) // Error? { Debug.Log("JSN Send Put Failed - ERROR!"); // Log List <T> theList = null; // Create Null List to return to caller setter(theList); // return to caller the list } } }
// Send Reg is slightly different // void aSetTableConnection(string tbName, string tConnection); private IEnumerator SendReg(string pTblName) { UnityWebRequest webReq = UnityWebRequest.Get(qStr); yield return(webReq.Send()); if (webReq.isError) { Debug.Log(webReq.error); } else { // Show results as text Debug.Log(webReq.downloadHandler.text); _Message = JsonUtility.FromJson <JSNDropMessage>(webReq.downloadHandler.text); if (_Message.Message == "NEW" || _Message.Message == "EXISTS") { _result = _Message.Type; connectionID = _Message.Type; if (_tables == null) { _tables = new Dictionary <string, string>(); } if (!_tables.ContainsKey(pTblName)) { _tables.Add(pTblName, connectionID); } } else { _result = webReq.downloadHandler.text; // a bit messy } } }
// Send Reg to create table in database if not exist private IEnumerator SendReg <T>(string pTblName, setResult <T> setter) { Debug.Log("Sent Req: " + qStr); // log UnityWebRequest webReq = UnityWebRequest.Get(qStr); // create web request containing the request yield return(webReq.Send()); // Send request and exit method remembering where upto for when co-routine calls again if (webReq.isNetworkError) // Network error { Debug.Log(webReq.error); // log } else { //Request success, Convert JSN back into Message class Object format _Message = JsonUtility.FromJson <JSNDropMessage>(webReq.downloadHandler.text); if (_Message.Message == "NEW" || _Message.Message == "EXISTS") // Check expected New or Exist Response { string connectionID = _Message.Type; // put into variable, not really needed but clearer to read // Keep track of tables by adding the tables name and connection ID returned from request to Dictionary if (!_tables.ContainsKey(pTblName)) { _tables.Add(pTblName, connectionID); } } else { Debug.Log("What just happened? This should never occur :("); // Should never happen but just incase } List <T> theList = new List <T>(); // Caller Expects reply so create empty list setter(theList); // Return to caller the empty list } }