Beispiel #1
0
        /// <summary>
        /// Fetches the user's profile.
        /// </summary>
        /// <param name="cb">The result of the web request.</param>
        public void FetchProfile(FetchProfileCallback cb)
        {
            if (m_WebCoroutine != null)
            {
                Debug.LogError("A request is already in progress. Please wait for the operation to complete.");
                return;
            }

            Dictionary <string, string> formData = new Dictionary <string, string>();

            formData.Add("UserID", userID.ToString(CultureInfo.InvariantCulture));
            formData.Add("SessionToken", sessionToken);

            m_WebCoroutine = m_CoroutineOwner.StartCoroutine(OnFetchProfile(m_AppService.apiUrl + "user/get_private_profile.php", formData, cb));
        }
Beispiel #2
0
        private IEnumerator OnFetchProfile(string url, Dictionary <string, string> formData, FetchProfileCallback cb)
        {
            using (UnityWebRequest request = WebConfig.Post(url, formData))
            {
                yield return(request.SendWebRequest());

                m_WebCoroutine = null;

                ErrorResponse error = WebConfig.ProcessGenericErrors(request);

                if (error != null)
                {
                    cb?.Invoke(error);
                    yield break;
                }

                GetProfileResponse response = GetProfileResponse.FromJson(request.downloadHandler.text);

                switch (response.code)
                {
                case 1:
                    // TODO: Fill out profile
                    cb?.Invoke(null);
                    break;

                default:
                    cb?.Invoke(WebConfig.GetUnknownError(request));
                    break;
                }
            }
        }