return raw response
This commit is contained in:
@@ -41,7 +41,7 @@ public class ApiClient(string apiUrl) : IApiClient
|
|||||||
|
|
||||||
var res = await Send(route, method, message, @params, serializer);
|
var res = await Send(route, method, message, @params, serializer);
|
||||||
|
|
||||||
return new(res.StatusCode);
|
return new(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual async Task<ApiResponse<TResponse>> SendRequest<TResponse>(string route, HttpMethod method, ApiMessage? message, ApiParameterCollection? @params, IApiMessageSerializer? serializer) where TResponse : ApiMessage
|
public virtual async Task<ApiResponse<TResponse>> SendRequest<TResponse>(string route, HttpMethod method, ApiMessage? message, ApiParameterCollection? @params, IApiMessageSerializer? serializer) where TResponse : ApiMessage
|
||||||
@@ -56,7 +56,7 @@ public class ApiClient(string apiUrl) : IApiClient
|
|||||||
if (res.IsSuccessStatusCode)
|
if (res.IsSuccessStatusCode)
|
||||||
result = serializer.Deserialize(await res.Content.ReadAsStringAsync(), typeof(TResponse)) as TResponse;
|
result = serializer.Deserialize(await res.Content.ReadAsStringAsync(), typeof(TResponse)) as TResponse;
|
||||||
|
|
||||||
return new(res.StatusCode, result);
|
return new(res, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual async Task<HttpResponseMessage> Send(string route, HttpMethod method, ApiMessage? message, ApiParameterCollection? @params, IApiMessageSerializer serializer)
|
protected virtual async Task<HttpResponseMessage> Send(string route, HttpMethod method, ApiMessage? message, ApiParameterCollection? @params, IApiMessageSerializer serializer)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
public abstract class ApiMessage
|
public abstract class ApiMessage
|
||||||
{
|
{
|
||||||
private class EmptyApiMessage : ApiMessage { }
|
private class EmptyApiMessage : ApiMessage;
|
||||||
|
|
||||||
public static ApiMessage Empty { get; } = new EmptyApiMessage();
|
public static ApiMessage Empty { get; } = new EmptyApiMessage();
|
||||||
|
|
||||||
|
|||||||
@@ -3,8 +3,10 @@
|
|||||||
namespace Pilz.Net.Api;
|
namespace Pilz.Net.Api;
|
||||||
|
|
||||||
public record class ApiResponse(
|
public record class ApiResponse(
|
||||||
HttpStatusCode StatusCode)
|
HttpResponseMessage Response)
|
||||||
{
|
{
|
||||||
|
public HttpStatusCode StatusCode => Response.StatusCode;
|
||||||
|
|
||||||
public bool IsOk => StatusCode == HttpStatusCode.OK;
|
public bool IsOk => StatusCode == HttpStatusCode.OK;
|
||||||
|
|
||||||
public void EnsureOk()
|
public void EnsureOk()
|
||||||
|
|||||||
@@ -4,10 +4,12 @@ using System.Net;
|
|||||||
namespace Pilz.Net.Api;
|
namespace Pilz.Net.Api;
|
||||||
|
|
||||||
public record class ApiResponse<T>(
|
public record class ApiResponse<T>(
|
||||||
HttpStatusCode StatusCode,
|
HttpResponseMessage Response,
|
||||||
T? Message)
|
T? Message)
|
||||||
where T : ApiMessage
|
where T : ApiMessage
|
||||||
{
|
{
|
||||||
|
public HttpStatusCode StatusCode => Response.StatusCode;
|
||||||
|
|
||||||
[MemberNotNullWhen(true, nameof(Message))]
|
[MemberNotNullWhen(true, nameof(Message))]
|
||||||
public bool IsOk => StatusCode == HttpStatusCode.OK && Message is not null;
|
public bool IsOk => StatusCode == HttpStatusCode.OK && Message is not null;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user