From cdad0ad809816d6891333864276753fb9ab75e64 Mon Sep 17 00:00:00 2001 From: James R Sconfitto Date: Sat, 9 Nov 2013 10:46:46 -0500 Subject: [PATCH] Return a status code from Delete requests --- Octokit.Tests/Http/ApiConnectionTests.cs | 5 +++-- Octokit/Http/Connection.cs | 11 +++++++++-- Octokit/Http/IConnection.cs | 3 ++- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/Octokit.Tests/Http/ApiConnectionTests.cs b/Octokit.Tests/Http/ApiConnectionTests.cs index 9b5df215..d76967f8 100644 --- a/Octokit.Tests/Http/ApiConnectionTests.cs +++ b/Octokit.Tests/Http/ApiConnectionTests.cs @@ -1,4 +1,5 @@ using System; +using System.Net; using System.Collections.Generic; using System.IO; using System.Threading.Tasks; @@ -248,9 +249,9 @@ namespace Octokit.Tests.Http public async Task MakesDeleteRequest() { var deleteUri = new Uri("anything", UriKind.Relative); - IResponse response = new ApiResponse {BodyAsObject = new object()}; + HttpStatusCode statusCode = HttpStatusCode.NoContent; var connection = Substitute.For(); - connection.DeleteAsync(Args.Uri).Returns(Task.FromResult(response)); + connection.DeleteAsync(Args.Uri).Returns(Task.FromResult(statusCode)); var apiConnection = new ApiConnection(connection); await apiConnection.Delete(deleteUri); diff --git a/Octokit/Http/Connection.cs b/Octokit/Http/Connection.cs index 0a967530..edf77ee7 100644 --- a/Octokit/Http/Connection.cs +++ b/Octokit/Http/Connection.cs @@ -205,11 +205,11 @@ namespace Octokit return Run(request); } - public Task> DeleteAsync(Uri uri) + public Task DeleteAsync(Uri uri) { Ensure.ArgumentNotNull(uri, "uri"); - return Run(new Request + return RunForStatus(new Request { Method = HttpMethod.Delete, BaseAddress = BaseAddress, @@ -257,6 +257,13 @@ namespace Octokit return RunRequest(request); } + async Task RunForStatus(IRequest request) + { + _jsonPipeline.SerializeRequest(request); + var response = await RunRequest(request).ConfigureAwait(false); + return response.StatusCode; + } + async Task> Run(IRequest request) { _jsonPipeline.SerializeRequest(request); diff --git a/Octokit/Http/IConnection.cs b/Octokit/Http/IConnection.cs index dfc0681f..6d513ba8 100644 --- a/Octokit/Http/IConnection.cs +++ b/Octokit/Http/IConnection.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Net; using System.Threading.Tasks; namespace Octokit @@ -13,7 +14,7 @@ namespace Octokit Task> PutAsync(Uri uri, object body); Task> PutAsync(Uri uri, object body, string twoFactorAuthenticationCode); - Task> DeleteAsync(Uri uri); + Task DeleteAsync(Uri uri); Uri BaseAddress { get; }