private static async Task <string> makeRequest(string endpoint, HttpMethod method, IUser user, string json)
        {
            var requestMessage = AuthorizedRequestBuilder.CreateRequest(
                Credentials.WithApiToken(user.ApiToken), endpoint, method);

            if (json != null)
            {
                requestMessage.Content = new StringContent(json, Encoding.UTF8, "application/json");
            }

            using (var client = new HttpClient())
            {
                var response = await client.SendAsync(requestMessage);

                var data = await response.Content.ReadAsStringAsync();

                if (response.IsSuccessStatusCode)
                {
                    return(data);
                }

                throw ApiExceptions.For(
                          new Request(json, requestMessage.RequestUri, new HttpHeader[0], requestMessage.Method),
                          new Response(data, false, response.Content?.Headers?.ContentType?.MediaType, response.Headers,
                                       response.StatusCode));
            }
        }
        private static async Task <string> makeRequest(string endpoint, HttpMethod method, IUser user, string json)
        {
            ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;

            var requestMessage = AuthorizedRequestBuilder.CreateRequest(
                Credentials.WithApiToken(user.ApiToken), endpoint, method);

            if (json != null)
            {
                requestMessage.Content = new StringContent(json, Encoding.UTF8, "application/json");
            }

            using (var client = new HttpClient())
            {
                var response = await client.SendAsync(requestMessage);

                return(await response.Content.ReadAsStringAsync());
            }
        }
Exemple #3
0
        public static async Task <Workspace> CreateFor(Models.User user)
        {
            ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;

            var newWorkspaceName = $"{Guid.NewGuid()}";
            var json             = $"{{\"name\": \"{newWorkspaceName}\"}}";

            var requestMessage = AuthorizedRequestBuilder.CreateRequest(
                Credentials.WithApiToken(user.ApiToken), "https://toggl.space/api/v9/workspaces", HttpMethod.Post);

            requestMessage.Content = new StringContent(json, Encoding.UTF8, "application/json");

            using (var client = new HttpClient())
            {
                var response = await client.SendAsync(requestMessage);

                var responseBody = await response.Content.ReadAsStringAsync();

                var jsonSerializer = new JsonSerializer();
                return(jsonSerializer.Deserialize <Workspace>(responseBody));
            }
        }