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