summary refs log tree commit diff
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2026-06-24 05:53:51 +0200
committerRory& <root@rory.gay>2026-06-24 05:53:51 +0200
commit1727424450766ab11b46e6ffb7b9a5d86ee82e14 (patch)
tree99e44842897f8aea9b47d138cf9a84625171c42d
parentOp14: fix offline query by mandating that *all* sessions must be offline (diff)
downloadserver-ts-1727424450766ab11b46e6ffb7b9a5d86ee82e14.tar.xz
Op14: handle serialisation logic for member to include presence
-rw-r--r--extra/admin-api/Models/Spacebar.Models.Generic/Member.cs18
1 files changed, 16 insertions, 2 deletions
diff --git a/extra/admin-api/Models/Spacebar.Models.Generic/Member.cs b/extra/admin-api/Models/Spacebar.Models.Generic/Member.cs

index b11a041b..749b0988 100644 --- a/extra/admin-api/Models/Spacebar.Models.Generic/Member.cs +++ b/extra/admin-api/Models/Spacebar.Models.Generic/Member.cs
@@ -1,5 +1,6 @@ using System.Diagnostics; using System.Diagnostics.CodeAnalysis; +using System.Text.Json; using System.Text.Json.Serialization; namespace Spacebar.Models.Generic; @@ -7,7 +8,9 @@ namespace Spacebar.Models.Generic; [DebuggerDisplay("{User.Id} ({User.Username}#{User.Discriminator})")] [SuppressMessage("ReSharper", "UnusedAutoPropertyAccessor.Global")] [SuppressMessage("ReSharper", "PropertyCanBeMadeInitOnly.Global")] -public class Member { +[JsonConverter(typeof(MemberJsonConverter))] +public class Member +{ [JsonPropertyName("user")] public required PartialUser User { get; set; } @@ -37,7 +40,18 @@ public class Member { } // Unsure if this is used anywhere outside of op14...? -public class MemberWithPresence : Member { +public class MemberWithPresence : Member +{ [JsonPropertyName("presence")] public Presence? Presence { get; set; } +} + +public class MemberJsonConverter : JsonConverter<Member> +{ + public override Member? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + throw new NotImplementedException(); // TODO + } + + public override void Write(Utf8JsonWriter writer, Member value, JsonSerializerOptions options) => JsonSerializer.Serialize(writer, value, value.GetType(), options); } \ No newline at end of file