using System; using System.Collections.Generic; using Http; using Newtonsoft.Json; using UnityEngine; public class UsersRequest { private static UsersRequest _instance; public static UsersRequest Instance => _instance ??= new UsersRequest(); // public void SigningUp(string body, Action complete) // { // var http = HttpManager.Instance.Post("users", // info => { complete?.Invoke(info.State != RequestState.Success ? "" : info.Response.DataAsText); }); // http.AddRevocableSession(); // http.AddParameter(body); // http.Send(); // } public void Users(string body, Action complete) { HttpDebug.Log($"logging in body:{body}"); var http = HttpManager.Instance.Post("users", info => OnResult(info, complete)); http.AddRevocableSession(); http.AddParameter(body); http.Send(); } public void UsersTokenLogin(string token, string body, Action complete) { HttpDebug.Log($"token logging in body:{body}"); var http = HttpManager.Instance.Post("functions/tokenLogin", info => OnResult(info, complete)); http.AddHeader("X-Parse-Session-Token", token); http.AddRevocableSession(); http.AddParameter(body); http.Send(); } public void UsersPost(string key, string body, Action complete) { var http = HttpManager.Instance.Post($"users/{key}", info => OnResult(info, complete)); http.AddToken(); http.AddParameter(body); http.Send(); } public void UsersGet(string key, string body, Action complete) { var http = HttpManager.Instance.Get($"users/{key}", info => OnResult(info, complete)); http.AddToken(); http.AddParameter(body); http.Send(); } public void UsersPut(string key, string body, Action complete) { var http = HttpManager.Instance.Put($"users/{key}", info => OnResult(info, complete)); http.AddToken(); http.AddParameter(body); http.Send(); } public void UsersDel(string key, string body, Action complete) { var http = HttpManager.Instance.Delete($"users/{key}", info => OnResult(info, complete)); http.AddToken(); http.AddParameter(body); http.Send(); } private void OnResult(ResultInfo info, Action complete) { if (info.State == RequestState.Success) { complete?.Invoke(info.Response.DataAsText); return; } else if (info.Response != null) { if (info.Response.StatusCode >= 200 || info.Response.StatusCode < 500) { complete?.Invoke(info.Response.DataAsText); return; } } complete?.Invoke(""); } // public void ValidatingToken(Action complete) // { // var http = HttpManager.Instance.Get("users/me", info => // { // if (info.State != RequestState.Success) // { // complete?.Invoke(false); // return; // } // // var msg = JsonConvert.DeserializeObject>(info.Response.DataAsText); // if (msg["code"] is int code && code == 209) // { // complete?.Invoke(false); // return; // } // // complete?.Invoke(true); // }); // http.AddToken(); // http.Send(); // } // // public void GuestLogin(Action complete) // { // var url = $"loginAs?userId={SystemInfo.deviceUniqueIdentifier}"; // var http = HttpManager.Instance.Get(url, // info => { complete?.Invoke(info.State != RequestState.Success ? "" : info.Response.DataAsText); }); // http.AddRevocableSession(); // http.AddHeader("X-Parse-Master-Key", "1"); // http.Send(); // } }