From 93cea9fea3f33220232fe0d4dad7e60599c53fff Mon Sep 17 00:00:00 2001 From: Pilzinsel64 Date: Thu, 12 Dec 2024 13:34:48 +0100 Subject: [PATCH] return raw response --- Pilz.Net/Api/ApiClient.cs | 4 ++-- Pilz.Net/Api/ApiMessage.cs | 2 +- Pilz.Net/Api/ApiResponse.cs | 4 +++- Pilz.Net/Api/ApiResponse{T}.cs | 4 +++- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Pilz.Net/Api/ApiClient.cs b/Pilz.Net/Api/ApiClient.cs index f19bf08..bde21cb 100644 --- a/Pilz.Net/Api/ApiClient.cs +++ b/Pilz.Net/Api/ApiClient.cs @@ -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> SendRequest(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 Send(string route, HttpMethod method, ApiMessage? message, ApiParameterCollection? @params, IApiMessageSerializer serializer) diff --git a/Pilz.Net/Api/ApiMessage.cs b/Pilz.Net/Api/ApiMessage.cs index b701faa..b60cbc5 100644 --- a/Pilz.Net/Api/ApiMessage.cs +++ b/Pilz.Net/Api/ApiMessage.cs @@ -2,7 +2,7 @@ public abstract class ApiMessage { - private class EmptyApiMessage : ApiMessage { } + private class EmptyApiMessage : ApiMessage; public static ApiMessage Empty { get; } = new EmptyApiMessage(); diff --git a/Pilz.Net/Api/ApiResponse.cs b/Pilz.Net/Api/ApiResponse.cs index 8b95a4c..f4f982e 100644 --- a/Pilz.Net/Api/ApiResponse.cs +++ b/Pilz.Net/Api/ApiResponse.cs @@ -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() diff --git a/Pilz.Net/Api/ApiResponse{T}.cs b/Pilz.Net/Api/ApiResponse{T}.cs index 1375644..5bcdcce 100644 --- a/Pilz.Net/Api/ApiResponse{T}.cs +++ b/Pilz.Net/Api/ApiResponse{T}.cs @@ -4,10 +4,12 @@ using System.Net; namespace Pilz.Net.Api; public record class ApiResponse( - 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;