/// <summary> /// Fetches the given library in the database. Does nothing if there is /// already a request under way. /// </summary> /// <param name = "libId"></param> /// <param name="callback">Callback function for data handling.</param> public void GetLibrary(int libId, GetLibraryCallback callback) { if (getLibraryCoroutine != null) { return; } getLibraryCoroutine = StartCoroutine(GetLibraryLoop(libId, callback)); }
IEnumerator GetLibraryLoop(int libId, GetLibraryCallback callback) { WWWForm form = new WWWForm(); form.AddField("request", "get_library"); form.AddField("library_id", libId); // Create a download object WWW request = new WWW(apiUrl, form); // Wait until the download is done yield return(request); if (!string.IsNullOrEmpty(request.error)) { Debug.Log("Unable to fetch library: " + request.error); callback(false, null); } else { JSONNode root = JSON.Parse(request.text); Debug.Log(root); if (root["success"]) { // Parse the library list here. Library lib = new Library(); lib.FromJSON(root["data"]); callback(true, lib); } else { callback(false, null); } } getLibraryCoroutine = null; }