Ejemplo n.º 1
0
        public async Task <WoWJson> GetAsync <WoWJson>(string query, Namespace?ns = null) where WoWJson : BlizzardApiJsonResponse, new()
        {
            await Check().ConfigureAwait(false);

            string       urlRequest = ParsePath(query, ns);
            IApiResponse response   = await _webClient.MakeApiRequestAsync(new Uri(_config.GetApiUrl(), urlRequest).AbsoluteUri);

            switch (response.GetStatusCode())
            {
            case HttpStatusCode.OK:
                string json = await response.ReadContentAsync();

                WoWJson result = JsonSerializer.Deserialize <WoWJson>(json);
                result.ResultCode     = response.GetStatusCode();
                result.DirectlyCalled = true;
                return(result);

            case HttpStatusCode.NotFound:
            case HttpStatusCode.Forbidden:
                return(new WoWJson()
                {
                    ResultCode = response.GetStatusCode()
                });

            default:
                throw new BadResponseException($"Get {typeof(WoWJson)} fail : {response.GetStatusCode()}", response.GetStatusCode(), response);
            }
        }
Ejemplo n.º 2
0
        public async Task <IApiResponse> Authentificate()
        {
            IApiResponse response = await _webClient.RequestUserAuthorizeAsync();

            return((response.GetStatusCode()) switch
            {
                HttpStatusCode.OK => response,
                _ => throw new HttpRequestException($"Login Error : {response.GetStatusCode()}"),
            });
Ejemplo n.º 3
0
        public async Task <string> GetJsonAsync(string query, Namespace?ns = null)
        {
            await Check().ConfigureAwait(false);

            string       urlRequest = ParsePath(query, ns);
            IApiResponse response   = await _webClient.MakeApiRequestAsync(new Uri(_config.GetApiUrl(), urlRequest).AbsoluteUri);

            switch (response.GetStatusCode())
            {
            case HttpStatusCode.OK:
                string json = await response.ReadContentAsync();

                return(json);

            default:
                throw new BadResponseException($"Get JSON fail : {response.GetStatusCode()}", response.GetStatusCode(), response);
            }
        }
Ejemplo n.º 4
0
        public async Task <string> SendTokenRequest()
        {
            IApiResponse response = await _webClient.RequestAccessTokenAsync();

            switch (response.GetStatusCode())
            {
            case HttpStatusCode.OK:
                string json = await response.ReadContentAsync();

                AuthToken credentials = JsonSerializer.Deserialize <AuthToken>(json);
                _token = credentials.AccessToken;
                int expiresInSeconds = credentials.ExpiresIn;
                _tokenExpiration = DateTime.Now.AddSeconds(expiresInSeconds);
                return(_token);

            default:
                throw new HttpRequestException($"Send Token Error : {response.GetStatusCode()}");
            }
        }