Beispiel #1
0
        public HttpResponseMessage QueriesLeftToday(ResponseFormat?format = null)
        {
            var guid = Request.GetToken();

            MorpherCacheObject cacheObject = null;

            if (guid == null)
            {
                cacheObject = _apiThrottler.GetQueryLimit(Request.GetClientIp());

                if (cacheObject == null)
                {
                    return(Request.CreateResponse(
                               HttpStatusCode.OK,
                               new ServiceErrorMessage(new IpBlockedException()),
                               format));
                }
            }
            else
            {
                cacheObject = _apiThrottler.GetQueryLimit(guid.Value);

                if (cacheObject == null)
                {
                    return(Request.CreateResponse(
                               HttpStatusCode.OK,
                               new ServiceErrorMessage(new TokenNotFoundException()),
                               format));
                }
            }

            return(Request.CreateResponse(HttpStatusCode.OK, Math.Max(cacheObject.QueriesLeft, 0), format));
        }