return raw response

This commit is contained in:
Pilzinsel64
2024-12-12 13:34:48 +01:00
parent c8915423fd
commit 93cea9fea3
4 changed files with 9 additions and 5 deletions

View File

@@ -41,7 +41,7 @@ public class ApiClient(string apiUrl) : IApiClient
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
@@ -56,7 +56,7 @@ public class ApiClient(string apiUrl) : IApiClient
if (res.IsSuccessStatusCode)
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)

View File

@@ -2,7 +2,7 @@
public abstract class ApiMessage
{
private class EmptyApiMessage : ApiMessage { }
private class EmptyApiMessage : ApiMessage;
public static ApiMessage Empty { get; } = new EmptyApiMessage();

View File

@@ -3,8 +3,10 @@
namespace Pilz.Net.Api;
public record class ApiResponse(
HttpStatusCode StatusCode)
HttpResponseMessage Response)
{
public HttpStatusCode StatusCode => Response.StatusCode;
public bool IsOk => StatusCode == HttpStatusCode.OK;
public void EnsureOk()

View File

@@ -4,10 +4,12 @@ using System.Net;
namespace Pilz.Net.Api;
public record class ApiResponse<T>(
HttpStatusCode StatusCode,
HttpResponseMessage Response,
T? Message)
where T : ApiMessage
{
public HttpStatusCode StatusCode => Response.StatusCode;
[MemberNotNullWhen(true, nameof(Message))]
public bool IsOk => StatusCode == HttpStatusCode.OK && Message is not null;