Пример #1
0
        internal static async Task <IEnumerable <T> > DoSeveralHttp <T>(string endpoint, string type, string accessToken)
        {
            Func <JToken, ISpotifyObject> generator = CreateSpotifyObjectGenerator(typeof(T));
            HttpRequestMessage            message   = WebRequestHelpers.SetupRequest(endpoint, accessToken);
            HttpResponseMessage           response  = await WebRequestHelpers.Client.SendAsync(message);

            if (response.IsSuccessStatusCode)
            {
                JToken token = await WebRequestHelpers.ParseJsonResponse(response.Content);

                JArray jarr = token.Value <JArray>(type);

                List <T> lst = new List <T>();
                foreach (JObject jobj in jarr)
                {
                    T item = (T)generator(jobj);
                    lst.Add(item);
                }
                return(lst);
            }
            else
            {
                throw new HttpRequestException(response.ReasonPhrase);
            }
        }
Пример #2
0
        internal static async Task <T> DoHTTP <T>(string endpoint, string accessToken, string key = "") where T : ISpotifyObject
        {
            Func <JToken, ISpotifyObject> generator = CreateSpotifyObjectGenerator(typeof(T));
            HttpRequestMessage            message   = WebRequestHelpers.SetupRequest(endpoint, accessToken);
            HttpResponseMessage           response  = await WebRequestHelpers.Client.SendAsync(message);

            if (response.IsSuccessStatusCode)
            {
                JToken token = await WebRequestHelpers.ParseJsonResponse(response.Content);

                if (!string.IsNullOrWhiteSpace(key))
                {
                    token = token.Value <JToken>(key);
                }
                T item = (T)generator(token);
                return(item);
            }
            else
            {
                return((T)generator("Error")); //TODO this is broken, yo
            }
        }
Пример #3
0
        internal static async Task <IReadOnlyList <bool> > DoHttpGetBools(string accessToken, string endpoint)
        {
            HttpRequestMessage  message  = WebRequestHelpers.SetupRequest(endpoint, accessToken);
            HttpResponseMessage response = await WebRequestHelpers.Client.SendAsync(message);

            if (response.IsSuccessStatusCode)
            {
                JToken token = await WebRequestHelpers.ParseJsonResponse(response.Content);

                JArray      jarr = token.Value <JArray>();
                List <bool> lst  = new List <bool>();
                foreach (JValue jobj in jarr)
                {
                    bool contains = jobj.Value <bool>();
                    lst.Add(contains);
                }
                return(lst);
            }
            else
            {
                throw new HttpRequestException($"Status Code: {response.StatusCode}, Message: {response.ReasonPhrase}");
            }
        }