public void CreateLobby(Action <string> onSuccess) { var req = new RESTEasyRequest(); req.Body(" ").Url(State.HTTP_HOST + "/api/v1/lobby").OnSuccess(onSuccess).OnFailure((s, i) => handleFailure(req, s, i)); StartCoroutine(req.Post()); }
private static void HandleFailure(UnityWebRequest req, RESTEasyRequest handler) { if (handler.failureBytes != null) { handler.failureBytes(req.downloadHandler.data); } else if (handler.failureString != null || handler.failureStringStatus != null || handler.failureResponse != null) { var bodyStr = req.downloadHandler.text; if (handler.failureString != null) { handler.failureString(bodyStr); } else if (handler.failureStringStatus != null) { handler.failureStringStatus(bodyStr, (int)req.responseCode); } else { handler.failureResponse(new RESTEasyResponse((int)req.responseCode, bodyStr, req.GetResponseHeaders(), req)); } } else if (handler.failureEmpty != null) { handler.failureEmpty(); } }
public void StartGame(string code, Action onSuccess) { var req = new RESTEasyRequest(); var body = new GameStartMessage(); body.gameID = code; req.Body(JsonUtility.ToJson(body)).Url(State.HTTP_HOST + "/api/v1/lobby/" + code + "/start").OnSuccess(onSuccess).OnFailure((s, i) => handleFailure(req, s, i)); StartCoroutine(req.Put()); }
public void LeaveLobby(string code, string playerName, Action onSuccess) { var req = new RESTEasyRequest(); var body = new LobbyLeaveMessage(); body.playerID = playerName; req.Body(JsonUtility.ToJson(body)).Url(State.HTTP_HOST + "/api/v1/lobby/" + code + "/leave").OnSuccess(onSuccess).OnFailure((s, i) => handleFailure(req, s, i)); StartCoroutine(req.Put()); }
public void GetGameState(string gameId, Action <CurrentStateMessage> onSuccess) { var req = new RESTEasyRequest(); req.Url(State.HTTP_HOST + "/api/v1/game/" + gameId + "/turn/state").OnSuccess((resp, status) => { var msg = JsonUtility.FromJson <CurrentStateMessage>(resp); onSuccess(msg); }).OnFailure((s, i) => handleFailure(req, s, i)); StartCoroutine(req.Get()); }
public void SubmitTurn(string gameId, int turn, string playerName, int playerId, int[] cardIds, Action onSuccess) { var req = new RESTEasyRequest(); var body = new TurnSubmissionMessage(); body.gameID = gameId; body.playerID = playerName; for (int i = 0; i < cardIds.Length; i++) { var input = new GameInputMessage(); input.order = i; input.owner = playerId; input.swap = 0; // TODO: swap cards input.cardID = cardIds[i]; body.inputs.Add(input); } Debug.Log(string.Format("Card submissions: {0}", body)); req.Body(JsonUtility.ToJson(body)).Url(State.HTTP_HOST + "/api/v1/game/" + gameId + "/turn/" + playerName).OnSuccess(onSuccess).OnFailure((s, i) => handleFailure(req, s, i)); StartCoroutine(req.Put()); }
private static IEnumerator Get(RESTEasyRequest request) { var req = UnityWebRequest.Get(request.url); if (request.timeout > 0) { req.timeout = request.timeout; } request.headers.ForEach((header) => req.SetRequestHeader(header.key, header.value)); using (req) { yield return(req.SendWebRequest()); if (req.isNetworkError || req.isHttpError) { HandleFailure(req, request); } else { HandleSuccess(req, request); } } }
private static IEnumerator Put(RESTEasyRequest request) { var req = UnityWebRequest.Put(request.url, "empty"); if (request.timeout > 0) { req.timeout = request.timeout; } req.uploadHandler = new UploadHandlerRaw(Encoding.ASCII.GetBytes(request.body)); request.headers.ForEach((header) => req.SetRequestHeader(header.key, header.value)); using (req) { yield return(req.SendWebRequest()); if (req.isNetworkError || req.isHttpError) { HandleFailure(req, request); } else { HandleSuccess(req, request); } } }
private void handleFailure(RESTEasyRequest req, string error, int status) { Debug.LogError(string.Format("{2} ({0}): {1}", status, error, req.url)); }