public static IEnumerator delete(string url, string sessionToken, Action <bool, object> callback = null) { if (Gamedonia.INSTANCE.debug) { String debugMsg = "[Api Call] - " + url; Debug.Log(debugMsg); } string path = _baseURL + "/" + _version + url; string date = GetCurrentDate(); Request request = new Request("delete", path); request.AddHeader(GD_SESSION_TOKEN, sessionToken); request.AddHeader(GD_APIKEY, _apiKey); request.AddHeader("Date", date); request.AddHeader(GD_SIGNATURE, Sign(_apiKey, _secret, date, "DELETE", request.uri.AbsolutePath)); request.Send(); while (!request.isDone) { yield return(null); } if (request.response.status == 200) { if (Gamedonia.INSTANCE.debug) { Debug.Log("[Api Response][" + url + "] - " + request.response.status + " " + request.response.Text); } callback(true, request.response.Text); } else { if (Gamedonia.INSTANCE.debug) { Debug.Log("[Api Response][" + url + "] - " + request.response.status + " " + request.response.message + " " + request.response.Text); } GDError error = JsonMapper.ToObject <GDError>(request.response.Text); error.httpErrorCode = request.response.status; error.httpErrorMessage = request.response.message; Gamedonia.INSTANCE.lastError = error; callback(false, request.response.message + ' ' + request.response.Text); } }
public static IEnumerator post(string url, string content, string auth = null, string sessionToken = null, string gameid = null, Action <bool, object> callback = null) { if (Gamedonia.INSTANCE.debug) { String debugMsg = "[Api Call] - " + url; if (!String.IsNullOrEmpty(content)) { debugMsg += " " + content; } Debug.Log(debugMsg); } string path = _baseURL + "/" + _version + url; Request request = new Request("POST", path); request.AddHeader("Content-Type", _content_type); request.AddHeader(GD_APIKEY, _apiKey); if (!string.IsNullOrEmpty(auth)) { request.AddHeader(GD_AUTH, auth); } if (!string.IsNullOrEmpty(sessionToken)) { request.AddHeader(GD_SESSION_TOKEN, sessionToken); } if (!string.IsNullOrEmpty(gameid)) { request.AddHeader(GD_GAMEID, gameid); } if (!string.IsNullOrEmpty(content)) { //Sign data to post string date = GetCurrentDate(); string hmac = Sign(_apiKey, _secret, Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(content)), _content_type, date, "POST", request.uri.AbsolutePath); request.AddHeader(GD_SIGNATURE, hmac); request.AddHeader("Date", date); request.bytes = Encoding.UTF8.GetBytes(content); } request.Send(); while (!request.isDone) { yield return(null); } if (request.response.status == 200) { if (Gamedonia.INSTANCE.debug) { Debug.Log("[Api Response][" + url + "] - " + request.response.status + " " + request.response.Text); } callback(true, request.response.Text); } else { if (Gamedonia.INSTANCE.debug) { Debug.Log("[Api Response][" + url + "] - " + request.response.status + " " + request.response.message + " " + request.response.Text); } GDError error = JsonMapper.ToObject <GDError>(request.response.Text); error.httpErrorCode = request.response.status; error.httpErrorMessage = request.response.message; Gamedonia.INSTANCE.lastError = error; callback(false, request.response.message); } }
public static GDError buildError(Response response) { GDError error = null; if (!String.IsNullOrEmpty (response.Text)) { error = JsonMapper.ToObject<GDError>(response.Text); error.httpErrorCode = response.status; if (!String.IsNullOrEmpty(response.message)) error.httpErrorMessage = response.message; } else { error = new GDError(); error.httpErrorCode = response.status; } return error; }