public void SendMessage(MessageInfo m, MessageSentCallback success, MessageSendingError failure, NoConnectionCallback noconnection) { StartCoroutine(SendMessageCoroutine(m, success, failure, noconnection)); }
public IEnumerator SendMessageCoroutine(MessageInfo m, MessageSentCallback success, MessageSendingError failure, NoConnectionCallback noconnection) { WWWForm form = new WWWForm(); form.AddField("recipientId", m.recipient); form.AddField("title", m.title); form.AddField("messageBody", m.body); if (m.replyTo != null) { form.AddField("replyTo", m.replyTo); } bool hacked = m_UserManager.CurrentHackedUser != null; UnityWebRequest request; if (hacked) { form.AddField("targetId", m_UserManager.CurrentHackedUser); request = UnityWebRequest.Post(Constants.serverAddress + "api/hack/messages", form); } else { request = UnityWebRequest.Post(Constants.serverAddress + "api/messages", form); } m_UserManager.SetCurrentUserAuthorization(request); yield return(request.SendWebRequest()); while (!request.isDone) { yield return(new WaitForEndOfFrame()); } if (request.isNetworkError) { Debug.Log("Network error: Cannot send message: " + request.error + ", Code = " + request.responseCode); if (noconnection != null) { noconnection(); } } else if (request.isHttpError) { if (request.responseCode == 400) { Debug.Log("Http error: Message data missing: " + request.error + ", Code = " + request.responseCode + " " + request.downloadHandler.text); } else if (request.responseCode == 404) { Debug.Log("Http error: Recipient or parent not found: " + request.error + ", Code = " + request.responseCode + " " + request.downloadHandler.text); } else if (request.responseCode == 500) { Debug.Log("Http error: Database search failed: " + request.error + ", Code = " + request.responseCode); } if (failure != null) { failure(); } } else if (request.responseCode == 200) { // response contains the message //Debug.Log("Message sent: " + request.downloadHandler.text); GetMessages(true, () => { success(); }, noconnection, () => { failure(); }); } }