public void UpdatePersonalInfo(cmlData fields) { if (fields.String("descr") != string.Empty) fields.Set ("descr", Encoder.Base64Encode(fields.String ("descr") ) ); WPServer.ContactServer(WULActions.UpdateAccountDetails.ToString(),login_filepath, LOGINConstant, fields, onInfoUpdated, onInfoUpdateFail); }
public void AttemptToLogin(cmlData fields) { WUCookie.ClearCookie(); WUCookie.StoreCookie(); fields.Set("wul_fields", FieldsToFetch); WPServer.ContactServer(WULActions.DoLogin.ToString(),login_filepath, LOGINConstant, fields, onLoggedIn, onLoginFailed); }
public void FetchProfileImage(System.Action<Texture2D> response, WULGravatarTypes gravatar_type) { onProfileImageReceived = response; if (null == onProfileImageReceived) return; cmlData data = new cmlData(); data.Set("gravatar_type", gravatar_type.ToString()); WPServer.ContactServer(WULActions.FetchUserEmail.ToString(),login_filepath, LOGINConstant, data, onProfileImageFetched); }
public void AttemptAutoLogin() { cmlData data = new cmlData(); data.Set("wul_fields", FieldsToFetch); WPServer.ContactServer(WULActions.VerifyLogin.ToString(),login_filepath, LOGINConstant, data, onLoggedIn); }
public cmlData ChallengeToCMLData(bool allow_empty) { cmlData fields = new cmlData(); foreach (TabbedServerDataCapturePage page in pages) foreach (ServerDataCapture field in page.Entries) if (field.fieldType != eFieldType.Verify) if (field.value != "" || allow_empty) fields.Set( field.serverfield, field.value ); return fields; }
public cmlData ChallengeToCMLData(ref ServerDataCapture[] challenge_text, bool allow_empty) { cmlData fields = new cmlData(); foreach (ServerDataCapture field in challenge_text) if (field.fieldType != eFieldType.Verify) if (field.value != "" || allow_empty) fields.Set( field.serverfield, field.value ); return fields; }
//returns a duplicate of this cmlData object virtual public cmlData Copy(CMLCopyMode mode = CMLCopyMode.no_id, string id_value="-1") { cmlData result = new cmlData(); result.data_type = this.data_type; foreach (var data in this.defined) { if (data.Key != "id") { result.Set(data.Key, data.Value); } else { switch (mode) { //keep the original id.... case CMLCopyMode.old_id: result.Set("id", data.Value); break; case CMLCopyMode.new_id : result.Set("id", id_value); break; case CMLCopyMode.no_id : result.Remove("id"); break; } } } foreach (string s in this.data) result.data.Add(s); return result; }
static public IEnumerator CallServer(string action, string filepath, string wuss_kit, cmlData data, Action<CML> response, Action<cmlData> failedresponse) { if (null == data) data = new cmlData(); if (data.String("gid") == string.Empty || data.Int("gid") < 0) data.Seti("gid", GameID); data.Seti("unity", 1); data.Set ("action", action); data.Set ("wuss", wuss_kit); string get = string.Empty; WWWForm f = new WWWForm(); foreach(string s in data.Keys) { f.AddField(s, data.String(s) ); get += "&"+s+"="+data.String(s); } get = "?" + get.Substring(1); if (null == serverState) InitServerState(); serverState.SetState(WULServerState.Contacting); WWW w = newWWW(Instance.URL(filepath)+get, f); yield return w; serverState.SetState(WULServerState.None); if (w.error != null) { StatusMessage.Message = "Connection error: " + w.error; if (null != failedresponse) { cmlData error = new cmlData(); error.Set("message", w.error); failedresponse(error); } } else { string result_string = w.text; int warning_index = result_string.IndexOf( "<br />" ); if ( warning_index > 0) { string server_error = result_string.Substring(warning_index + 6); StatusMessage.Message = server_error; Debug.Log (server_error); result_string = result_string.Substring(0, warning_index ); } result_string = Encoder.Base64Decode(result_string); CML results = new CML(); results.ParseFile(result_string); if (Instance.print_response_headers) foreach(var x in w.responseHeaders) Debug.Log(x.Key + " = " + x.Value + " : " + x.GetType() ) ; if (action == WULActions.DoLogin.ToString() || action == WULActions.VerifyLogin.ToString()) { WUCookie.ExtractCookie( w.responseHeaders ); } else if (action == WULActions.Logout.ToString()) { WUCookie.ClearCookie(); WUCookie.StoreCookie(); } if (results.Count == 0) { StatusMessage.Message = "No results returned"; if (null != failedresponse) { cmlData error = new cmlData(); error.Set("message", "No results returned"); failedresponse(error); } } else { //should only ever be one but for the sake of demonstration, let's test for multiple... List<cmlData> errors = results.NodesWithField("success", "false"); if (null != errors) { if (action != WULActions.VerifyLogin.ToString()) { if (null != failedresponse) { foreach(cmlData error in errors) { StatusMessage.Message = "Error: " + error.String("message"); cmlData _error = new cmlData(); _error.Set("message", error.String("message")); failedresponse(_error); } } } } else //if there were no errors, pass the resuls along to the response delegate, if any { if (action == WULActions.FetchUserEmail.ToString() ) { int i = results.GetFirstNodeOfTypei("LOGIN"); results[i].Set("gravatar_type", data.String("gravatar_type")); } if (null != response) { response(results); } } } } }