Files
Pilz/Pilz.Net/Api/ApiResponse{T}.cs
2024-10-23 12:51:36 +02:00

22 lines
517 B
C#

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