Files
Pilz/Pilz.Net/Api/ApiResponse{T}.cs
2025-01-20 10:55:18 +01:00

24 lines
630 B
C#

using System.Diagnostics.CodeAnalysis;
using System.Net;
namespace Pilz.Net.Api;
public record class ApiResponse<T>(
HttpResponseMessage Response,
T? Message)
where T : ApiMessage
{
public HttpStatusCode StatusCode => Response.StatusCode;
[MemberNotNullWhen(true, nameof(Message))]
public bool IsOk => (int)StatusCode >= 200 && (int)StatusCode <= 299 && Message is not null;
[MemberNotNull(nameof(Message))]
public T EnsureOk()
{
if (!IsOk)
throw new ApiException("Api return is not ok or message invalid: " + StatusCode, StatusCode);
return Message;
}
}