namespace Octokit.Internal
{
///
/// Wrapper for a response from the API
///
/// Payload contained in the response
public class ApiResponse : IApiResponse
{
///
/// Create a ApiResponse from an existing request
///
/// An existing request to wrap
public ApiResponse(IResponse response) : this(response, GetBodyAsObject(response))
{
}
///
/// Create a ApiResponse from an existing request and object
///
/// An existing request to wrap
/// The payload from an existing request
public ApiResponse(IResponse response, T bodyAsObject)
{
Ensure.ArgumentNotNull(response, "response");
HttpResponse = response;
Body = bodyAsObject;
}
///
/// The payload of the response
///
public T Body { get; private set; }
///
/// The context of the response
///
public IResponse HttpResponse { get; private set; }
static T GetBodyAsObject(IResponse response)
{
var body = response.Body;
if (body is T) return (T)body;
return default(T);
}
}
}