private IEnumerator OnCreateAccountResponse(string url, Dictionary <string, string> formData, CreateAccountCallback cb, string gameVersion) { using (UnityWebRequest request = WebConfig.Post(url, formData)) { yield return(request.SendWebRequest()); m_WebCoroutine = null; ErrorResponse error = WebConfig.ProcessGenericErrors(request); if (error != null) { cb?.Invoke(new CreateAccountResponse(), error); yield break; } CreateAccountResponse response = CreateAccountResponse.FromJson(request.downloadHandler.text); // -2 | Bad Data // -1 | Internal Error // 1 | Valid // 2 | Email Bad Format // 3 | Email Already Taken // 4 | UserName Bad Format // 5 | UserName Already Taken // 6 | DisplayName Bad Format // 7 | DisplayName Already Taken // 8 | Password needs different characters // 9 | Password needs Upper Number Symbol And Lower // 10 | Password too similar to name // 11 | Bad Version | $foundVersion // 12 | Down for maintenance switch (response.code) { case 1: cb?.Invoke(response, null); break; case 2: cb?.Invoke(response, new ErrorResponse("Email format is invalid.", response.message, null, response.code)); break; case 3: cb?.Invoke(response, new ErrorResponse("Email already in use.", response.message, null, response.code)); break; case 4: cb?.Invoke(response, new ErrorResponse("User name must contain only letters and numbers.", response.message, null, response.code)); break; case 5: cb?.Invoke(response, new ErrorResponse("User name already exists.", response.message, null, response.code)); break; case 6: cb?.Invoke(response, new ErrorResponse("Display name must contain only letters and numbers.", response.message, null, response.code)); break; case 7: cb?.Invoke(response, new ErrorResponse("Display name already exists.", response.message, null, response.code)); break; case 8: cb?.Invoke(response, new ErrorResponse("Password must contain at least 8 different characters.", response.message, null, response.code)); break; case 9: cb?.Invoke(response, new ErrorResponse("Password must contain at least 1 upper case letter, number or symbol and 1 lower case letter.", response.message, null, response.code)); break; case 10: cb?.Invoke(response, new ErrorResponse("Password too similar to name.", response.message, null, response.code)); break; case 11: cb?.Invoke(response, new ErrorResponse("Your app version is out of date.\n\nCurrent Version: " + response.serverVersion + "\nYour Version: " + gameVersion, response.message, null, response.code)); break; case 12: // Down for maintenance cb?.Invoke(response, new ErrorResponse(response.message, response.displayMessage, null, response.code)); break; default: // Unknown code error cb?.Invoke(response, WebConfig.GetUnknownError(request)); break; } } }
private IEnumerator OnLoginResponse(string url, Dictionary <string, string> formData, LoginCallback cb, string userName, string gameVersion) { using (UnityWebRequest request = WebConfig.Post(url, formData)) { yield return(request.SendWebRequest()); m_WebCoroutine = null; ErrorResponse error = WebConfig.ProcessGenericErrors(request); if (error != null) { cb?.Invoke(new LoginResponse(), error); yield break; } LoginResponse response = LoginResponse.FromJson(request.downloadHandler.text); switch (response.code) { case 1: // Save remember me credentials PlayerPrefs.SetInt("FlexAS_Login_RememberMe", !string.IsNullOrEmpty(response.rememberMeToken) ? 1 : 0); if (!string.IsNullOrEmpty(response.rememberMeToken)) { PlayerPrefs.SetString("FlexAS_Login_UserName", userName); PlayerPrefs.SetString("FlexAS_Login_RememberMeToken", response.rememberMeToken); } PlayerPrefs.Save(); cb?.Invoke(response, null); break; case 2: cb?.Invoke(response, new ErrorResponse("Your app version is out of date.\n\nCurrent Version: " + response.serverVersion + "\nYour Version: " + gameVersion, response.message, null, response.code)); break; case 5: string accountRestoreTime = ""; if (response.banRestoreDate > 0) { accountRestoreTime = "\n\nAccount will be restored in " + DateUtility.GetFormattedTimeFromSeconds(response.banRestoreDate); } cb?.Invoke(response, new ErrorResponse("This account has been banned.\n\nAdmin Message:\n\"" + response.banReason + "\"" + accountRestoreTime, response.message, null, response.code)); break; case 3: cb?.Invoke(response, new ErrorResponse("Incorrect username or password", response.message, null, response.code)); break; case 4: cb?.Invoke(response, new ErrorResponse("Account Locked", response.message, null, response.code)); break; case 6: // Down for maintenance cb?.Invoke(response, new ErrorResponse(response.message, response.displayMessage, null, response.code)); break; default: // Unknown code error cb?.Invoke(response, WebConfig.GetUnknownError(request)); break; } } }