private WebServiceReturnStatus doWWWCall(WWW www, ITransfluentParameters wsParams = null)
    {
        var sw = new Stopwatch();

        sw.Start();
        while (true)
        {
            if (www.isDone)
            {
                break;
            }
            if (www.error != null)
            {
                break;
            }
            if (sw.Elapsed.TotalSeconds >= 1000f)
            {
                break;
            }

            //EditorApplication.Step();
            Thread.Sleep(100);
        }

        return(_getMyWwwFacade.getStatusFromFinishedWWW(www, sw, wsParams));
    }
Example #2
0
        private IEnumerator doWebRequest(ITransfluentParameters call, GotstatusUpdate onStatusDone)
        {
            var facade = new WWWFacade();
            var sw     = new Stopwatch();

            sw.Start();
            WWW www = facade.request(call);

            yield return(www);

            var status = new WebServiceReturnStatus {
                serviceParams = call
            };

            try
            {
                status = facade.getStatusFromFinishedWWW(www, sw, call);
            }
            catch (CallException e)
            {
                Debug.Log("Exception:" + e.Message);
            }

            if (onStatusDone != null)
            {
                runner.runRoutine(onStatusDone(status));
            }
        }
Example #3
0
        //throws TransportException,ApplicatonLevelException,HttpErrorCode
        public WebServiceReturnStatus getStatusFromFinishedWWW(WWW www, Stopwatch sw,
                                                               ITransfluentParameters originalCallParams)
        {
            //Debug.Log("WWW:" + www.url);

            var status = new WebServiceReturnStatus
            {
                serviceParams = originalCallParams
            };

            sw.Stop();
            status.requestTimeTaken = sw.Elapsed;

            if (!www.isDone && www.error == null)
            {
                throw new TransportException("Timeout total time taken:");
            }
            if (www.error == null)
            {
                status.text = www.text;
            }
            else
            {
                string error = www.error;
                if (knownTransportError(error))
                {
                    www.Dispose();
                    throw new TransportException(error);
                }
                status.httpErrorCode = -1;
                int firstSpaceIndex = error.IndexOf(" ");

                if (firstSpaceIndex > 0)
                {
                    www.Dispose();

                    int.TryParse(error.Substring(0, firstSpaceIndex), out status.httpErrorCode);
                    //there has to be a better way to get error codes.
                    if (status.httpErrorCode == 0)
                    {
                        throw new Exception("UNHANDLED ERROR CODE FORMAT:(" + error + ")");
                    }
                    if (status.httpErrorCode >= 400 && status.httpErrorCode <= 499)
                    {
                        throw new ApplicatonLevelException("HTTP Error code, application level:" + status.httpErrorCode,
                                                           status.httpErrorCode);
                    }
                    throw new HttpErrorCode(status.httpErrorCode);
                }
                throw new Exception("Unknown error:" + error);                 //can't parse error status
            }
            www.Dispose();
            return(status);
        }
Example #4
0
        //throws TransportException,ApplicatonLevelException,HttpErrorCode
        public WebServiceReturnStatus getStatusFromFinishedWWW(WWW www, Stopwatch sw,
            ITransfluentParameters originalCallParams)
        {
            UnityEngine.Debug.Log("WWW:" + www.url);

            var status = new WebServiceReturnStatus
            {
                serviceParams = originalCallParams
            };
            sw.Stop();
            status.requestTimeTaken = sw.Elapsed;

            if(!www.isDone && www.error == null)
            {
                throw new TransportException("Timeout total time taken:");
            }
            if(www.error == null)
            {
                status.text = www.text;
            }
            else
            {
                string error = www.error;
                if(knownTransportError(error))
                {
                    www.Dispose();
                    throw new TransportException(error);
                }
                status.httpErrorCode = -1;
                int firstSpaceIndex = error.IndexOf(" ");

                if(firstSpaceIndex > 0)
                {
                    www.Dispose();

                    int.TryParse(error.Substring(0, firstSpaceIndex), out status.httpErrorCode);
                    //there has to be a better way to get error codes.
                    if(status.httpErrorCode == 0)
                    {
                        throw new Exception("UNHANDLED ERROR CODE FORMAT:(" + error + ")");
                    }
                    if(status.httpErrorCode >= 400 && status.httpErrorCode <= 499)
                    {
                        throw new ApplicatonLevelException("HTTP Error code, application level:" + status.httpErrorCode,
                            status.httpErrorCode);
                    }
                    throw new HttpErrorCode(status.httpErrorCode);
                }
                throw new Exception("Unknown error:" + error); //can't parse error status
            }
            www.Dispose();
            return status;
        }
        private string makeCall(ITransfluentParameters call)
        {
            if (!string.IsNullOrEmpty(getCurrentAuthToken()))
            {
                context.setMappings(call);
                call.getParameters.Add("token", getCurrentAuthToken());                  //TODO: find best way to handle auth token.  construction param,injection or manual setting
            }

            var service = context.manualGetMapping <IWebService>();

            return(service.request(call).text);
        }
Example #6
0
        public WWW request(ITransfluentParameters call)
        {
            Route  route = RestUrl.GetRouteAttribute(call.GetType());
            string url   = RestUrl.GetURL(call);

            string urlWithGetParams = url + encodeGETParams(call.getParameters);

            if (route.requestType == RestRequestType.GET)
            {
                return(request(urlWithGetParams));
            }
            return(request(urlWithGetParams, call.postParameters));
        }
Example #7
0
        public EditorWWWWaitUntil(ITransfluentParameters callParams, Action <WebServiceReturnStatus> callback)
        {
            _sw.Start();
            _callParams = callParams;

            _getMyWwwFacade = new WWWFacade();
            //string url = _getMyWwwFacade.encodeGETParams(callParams.getParameters);
            _www = _getMyWwwFacade.request(callParams);

            _callback = callback;
            new EditorWaitUntil(() =>
                                { return(_www.error != null || _www.isDone); },
                                internalCallback
                                );
        }
    private WebServiceReturnStatus doWWWCall(WWW www, ITransfluentParameters wsParams = null)
    {
        var sw = new Stopwatch();
        sw.Start();
        while(true)
        {
            if(www.isDone)
                break;
            if(www.error != null)
                break;
            if(sw.Elapsed.TotalSeconds >= 1000f)
                break;

            //EditorApplication.Step();
            Thread.Sleep(100);
        }

        return _getMyWwwFacade.getStatusFromFinishedWWW(www, sw, wsParams);
    }
        private IEnumerator doWebRequest(ITransfluentParameters call, GotstatusUpdate onStatusDone)
        {
            var facade = new WWWFacade();
            var sw = new Stopwatch();
            sw.Start();
            WWW www = facade.request(call);

            yield return www;
            var status = new WebServiceReturnStatus { serviceParams = call };
            try
            {
                status = facade.getStatusFromFinishedWWW(www, sw, call);
            }
            catch(CallException e)
            {
                Debug.Log("Exception:" + e.Message);
            }

            if(onStatusDone != null)
            {
                runner.runRoutine(onStatusDone(status));
            }
        }
Example #10
0
 public WebServiceReturnStatus request(ITransfluentParameters call)
 {
     return(realRequest.request(call));
 }
Example #11
0
 public void DoThing(ITransfluentParameters parameters, GameTimeWWW.GotstatusUpdate statusUpdated)
 {
     www        = new GameTimeWWW();
     www.runner = new AsyncRunner();
     www.webRequest(parameters, statusUpdated);
 }
        private string makeCall(ITransfluentParameters call)
        {
            if(!string.IsNullOrEmpty(getCurrentAuthToken()))
            {
                context.setMappings(call);
                call.getParameters.Add("token", getCurrentAuthToken());  //TODO: find best way to handle auth token.  construction param,injection or manual setting
            }

            var service = context.manualGetMapping<IWebService>();

            return service.request(call).text;
        }
Example #13
0
 public void webRequest(ITransfluentParameters call, GotstatusUpdate onStatusDone)
 {
     runner.runRoutine(doWebRequest(call, onStatusDone));
 }
        public EditorWWWWaitUntil(ITransfluentParameters callParams, Action<WebServiceReturnStatus> callback)
        {
            _sw.Start();
            _callParams = callParams;

            _getMyWwwFacade = new WWWFacade();
            //string url = _getMyWwwFacade.encodeGETParams(callParams.getParameters);
            _www = _getMyWwwFacade.request(callParams);

            _callback = callback;
            new EditorWaitUntil(() =>
            { return _www.error != null || _www.isDone; },
                internalCallback
            );
        }
 public void webRequest(ITransfluentParameters call, GotstatusUpdate onStatusDone)
 {
     runner.runRoutine(doWebRequest(call, onStatusDone));
 }
    public WebServiceReturnStatus request(ITransfluentParameters parameters)
    {
        WWW www = _getMyWwwFacade.request(parameters);

        return(doWWWCall(www, parameters));
    }
Example #17
0
 public static string GetURL(ITransfluentParameters callToGetUrlFor)
 {
     return baseServiceUrl + GetRouteAttribute(callToGetUrlFor.GetType()).route;
 }
 public WebServiceReturnStatus request(ITransfluentParameters parameters)
 {
     WWW www = _getMyWwwFacade.request(parameters);
     return doWWWCall(www, parameters);
 }
 public void DoThing(ITransfluentParameters parameters, GameTimeWWW.GotstatusUpdate statusUpdated)
 {
     www = new GameTimeWWW();
     www.runner = new AsyncRunner();
     www.webRequest(parameters, statusUpdated);
 }
 public WebServiceReturnStatus request(ITransfluentParameters call)
 {
     return realRequest.request(call);
 }
Example #21
0
        public WWW request(ITransfluentParameters call)
        {
            Route route = RestUrl.GetRouteAttribute(call.GetType());
            string url = RestUrl.GetURL(call);

            string urlWithGetParams = url + encodeGETParams(call.getParameters);
            if(route.requestType == RestRequestType.GET)
            {
                return request(urlWithGetParams);
            }
            return request(urlWithGetParams, call.postParameters);
        }
Example #22
0
 public static string GetURL(ITransfluentParameters callToGetUrlFor)
 {
     return(baseServiceUrl + GetRouteAttribute(callToGetUrlFor.GetType()).route);
 }