add more helper methods

This commit is contained in:
2024-08-22 14:38:15 +02:00
parent 519c292a1f
commit ab268e6584
4 changed files with 13 additions and 3 deletions

View File

@@ -2,4 +2,9 @@
public abstract class ApiMessage public abstract class ApiMessage
{ {
private class EmptyApiMessage : ApiMessage { }
public ApiMessage Empty { get; } = new EmptyApiMessage();
public bool IsEmpty => this is EmptyApiMessage;
} }

View File

@@ -5,9 +5,11 @@ namespace Pilz.Net.Api;
public record class ApiResponse( public record class ApiResponse(
HttpStatusCode StatusCode) HttpStatusCode StatusCode)
{ {
public bool IsOk => StatusCode != HttpStatusCode.OK;
public void EnsureOk() public void EnsureOk()
{ {
if (StatusCode != HttpStatusCode.OK) if (!IsOk)
throw new Exception("Api return is not ok!"); throw new Exception("Api return is not ok!");
} }
} }

View File

@@ -8,10 +8,13 @@ public record class ApiResponse<T>(
T? Message) T? Message)
where T : ApiMessage where T : ApiMessage
{ {
[MemberNotNullWhen(true, nameof(Message))]
public bool IsOk => StatusCode == HttpStatusCode.OK && Message is not null;
[MemberNotNull(nameof(Message))] [MemberNotNull(nameof(Message))]
public void EnsureOk() public void EnsureOk()
{ {
if (StatusCode != HttpStatusCode.OK || Message is null) if (!IsOk)
throw new Exception("Api return is not ok!"); throw new Exception("Api return is not ok!");
} }
} }