Remove StatusCode property from ApiResponse

We really want ApiResponse to be a composite of IResponse and the
deserialized content.
This commit is contained in:
Haacked
2015-01-02 00:57:27 -08:00
parent f83ad06c85
commit fa363b169f
10 changed files with 30 additions and 42 deletions
+3 -3
View File
@@ -141,11 +141,11 @@ namespace Octokit
var requestData = new { };
var response = await Connection.Put<object>(ApiUrls.IsFollowing(login), requestData)
.ConfigureAwait(false);
if (response.StatusCode != HttpStatusCode.NoContent)
if (response.HttpResponse.StatusCode != HttpStatusCode.NoContent)
{
throw new ApiException("Invalid Status Code returned. Expected a 204", response.StatusCode);
throw new ApiException("Invalid Status Code returned. Expected a 204", response.HttpResponse.StatusCode);
}
return response.StatusCode == HttpStatusCode.NoContent;
return response.HttpResponse.StatusCode == HttpStatusCode.NoContent;
}
catch (NotFoundException)
{
+9 -8
View File
@@ -144,13 +144,14 @@ namespace Octokit
{
var response = await Connection.Get<object>(ApiUrls.CheckMember(org, user), null, null)
.ConfigureAwait(false);
if (response.StatusCode != HttpStatusCode.NotFound
&& response.StatusCode != HttpStatusCode.NoContent
&& response.StatusCode != HttpStatusCode.Found)
var statusCode = response.HttpResponse.StatusCode;
if (statusCode != HttpStatusCode.NotFound
&& statusCode != HttpStatusCode.NoContent
&& statusCode != HttpStatusCode.Found)
{
throw new ApiException("Invalid Status Code returned. Expected a 204, a 302 or a 404", response.StatusCode);
throw new ApiException("Invalid Status Code returned. Expected a 204, a 302 or a 404", statusCode);
}
return response.StatusCode == HttpStatusCode.NoContent;
return statusCode == HttpStatusCode.NoContent;
}
catch (NotFoundException)
{
@@ -226,11 +227,11 @@ namespace Octokit
var requestData = new { };
var response = await Connection.Put<object>(ApiUrls.OrganizationMembership(org, user), requestData)
.ConfigureAwait(false);
if (response.StatusCode != HttpStatusCode.NoContent)
if (response.HttpResponse.StatusCode != HttpStatusCode.NoContent)
{
throw new ApiException("Invalid Status Code returned. Expected a 204", response.StatusCode);
throw new ApiException("Invalid Status Code returned. Expected a 204", response.HttpResponse.StatusCode);
}
return response.StatusCode == HttpStatusCode.NoContent;
return response.HttpResponse.StatusCode == HttpStatusCode.NoContent;
}
catch (NotFoundException)
{
@@ -95,9 +95,9 @@ namespace Octokit
var response = await ApiConnection.Connection.Post<PullRequestReviewComment>(ApiUrls.PullRequestReviewComments(owner, name, number), comment, null, null).ConfigureAwait(false);
if (response.StatusCode != HttpStatusCode.Created)
if (response.HttpResponse.StatusCode != HttpStatusCode.Created)
{
throw new ApiException("Invalid Status Code returned. Expected a 201", response.StatusCode);
throw new ApiException("Invalid Status Code returned. Expected a 201", response.HttpResponse.StatusCode);
}
return response.Body;
@@ -120,9 +120,9 @@ namespace Octokit
var response = await ApiConnection.Connection.Post<PullRequestReviewComment>(ApiUrls.PullRequestReviewComments(owner, name, number), comment, null, null).ConfigureAwait(false);
if (response.StatusCode != HttpStatusCode.Created)
if (response.HttpResponse.StatusCode != HttpStatusCode.Created)
{
throw new ApiException("Invalid Status Code returned. Expected a 201", response.StatusCode);
throw new ApiException("Invalid Status Code returned. Expected a 201", response.HttpResponse.StatusCode);
}
return response.Body;
+2 -2
View File
@@ -113,7 +113,7 @@ namespace Octokit
var response = await Connection.Get<object>(ApiUrls.Starred(owner, name), null, null)
.ConfigureAwait(false);
return response.StatusCode == HttpStatusCode.NoContent;
return response.HttpResponse.StatusCode == HttpStatusCode.NoContent;
}
catch (NotFoundException)
{
@@ -137,7 +137,7 @@ namespace Octokit
var response = await Connection.Put<object>(ApiUrls.Starred(owner, name), null, null)
.ConfigureAwait(false);
return response.StatusCode == HttpStatusCode.NoContent;
return response.HttpResponse.StatusCode == HttpStatusCode.NoContent;
}
catch (NotFoundException)
{
+1 -1
View File
@@ -121,7 +121,7 @@ namespace Octokit
try
{
var response = await ApiConnection.Connection.GetResponse<string>(endpoint);
return response.StatusCode == System.Net.HttpStatusCode.NoContent;
return response.HttpResponse.StatusCode == System.Net.HttpStatusCode.NoContent;
}
catch (NotFoundException)
{
+1
View File
@@ -1,6 +1,7 @@
using System;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Reflection;
using Octokit.Internal;
namespace Octokit
+4 -3
View File
@@ -343,16 +343,17 @@ namespace Octokit
var response = await Connection.GetResponse<T>(uri, cancellationToken);
if (response.StatusCode == HttpStatusCode.Accepted)
if (response.HttpResponse.StatusCode == HttpStatusCode.Accepted)
{
return await GetQueuedOperation<T>(uri, cancellationToken);
}
if (response.StatusCode == HttpStatusCode.OK)
if (response.HttpResponse.StatusCode == HttpStatusCode.OK)
{
return response.Body;
}
throw new ApiException("Queued Operations expect status codes of Accepted or OK.",response.StatusCode);
throw new ApiException("Queued Operations expect status codes of Accepted or OK.",
response.HttpResponse.StatusCode);
}
async Task<IReadOnlyPagedCollection<T>> GetPage<T>(
+2 -12
View File
@@ -1,7 +1,4 @@
using System.Collections.Generic;
using System.Net;
namespace Octokit.Internal
namespace Octokit.Internal
{
public class ApiResponse<T> : IApiResponse<T>
{
@@ -13,20 +10,13 @@ namespace Octokit.Internal
{
Ensure.ArgumentNotNull(response, "response");
var body = response.Body is T ? (T)response.Body : default(T);
HttpResponse = response;
Headers = response.Headers;
Body = body;
StatusCode = response.StatusCode;
ContentType = response.ContentType;
Body = bodyAsObject;
}
public T Body { get; private set; }
public IReadOnlyDictionary<string, string> Headers { get; private set; }
public HttpStatusCode StatusCode { get; set; }
public IResponse HttpResponse { get; private set; }
public string ContentType { get; set; }
static T GetBodyAsObject(IResponse response)
{
+4 -4
View File
@@ -309,7 +309,7 @@ namespace Octokit
Endpoint = uri
};
var response = await Run<object>(request, CancellationToken.None);
return response.StatusCode;
return response.HttpResponse.StatusCode;
}
/// <summary>
@@ -328,7 +328,7 @@ namespace Octokit
Endpoint = uri
};
var response = await Run<object>(request, CancellationToken.None);
return response.StatusCode;
return response.HttpResponse.StatusCode;
}
/// <summary>
@@ -347,7 +347,7 @@ namespace Octokit
Endpoint = uri
};
var response = await Run<object>(request, CancellationToken.None);
return response.StatusCode;
return response.HttpResponse.StatusCode;
}
/// <summary>
@@ -369,7 +369,7 @@ namespace Octokit
Endpoint = uri
};
var response = await Run<object>(request, CancellationToken.None);
return response.StatusCode;
return response.HttpResponse.StatusCode;
}
/// <summary>
-5
View File
@@ -14,11 +14,6 @@ namespace Octokit
/// </summary>
T Body { get; }
/// <summary>
/// The response status code.
/// </summary>
HttpStatusCode StatusCode { get; }
/// <summary>
/// The original non-deserialized http response.
/// </summary>