Ejemplo n.º 1
0
		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);
		}
Ejemplo n.º 2
0
		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);
		}
Ejemplo n.º 3
0
		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);
		}
Ejemplo n.º 4
0
		public void AttemptAutoLogin()
		{
			cmlData data = new cmlData();
			data.Set("wul_fields", FieldsToFetch);
			WPServer.ContactServer(WULActions.VerifyLogin.ToString(),login_filepath, LOGINConstant, data, onLoggedIn);
		}
Ejemplo n.º 5
0
		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;
		}
Ejemplo n.º 6
0
		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;
		}
Ejemplo n.º 7
0
		//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;
		}
Ejemplo n.º 8
0
	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);
					}
				}
			}
		}			
	}