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()); } }
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)); } }