about summary refs log tree commit diff
path: root/LibMatrix/Homeservers/RemoteHomeServer.cs
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2025-12-09 15:01:22 +0100
committerRory& <root@rory.gay>2025-12-09 19:01:20 +0100
commitf4137752179711d588f1c072d15be7795b6e31ba (patch)
tree25b4bbc3825020cb5d85451449250fe56b4150ef /LibMatrix/Homeservers/RemoteHomeServer.cs
parentDrop MXAE_UPSTREAM header from requests (diff)
downloadLibMatrix-f4137752179711d588f1c072d15be7795b6e31ba.tar.xz
Support getting/setting room dir visibility
Diffstat (limited to 'LibMatrix/Homeservers/RemoteHomeServer.cs')
-rw-r--r--LibMatrix/Homeservers/RemoteHomeServer.cs15
1 files changed, 15 insertions, 0 deletions
diff --git a/LibMatrix/Homeservers/RemoteHomeServer.cs b/LibMatrix/Homeservers/RemoteHomeServer.cs

index 7c55d57..a14e674 100644 --- a/LibMatrix/Homeservers/RemoteHomeServer.cs +++ b/LibMatrix/Homeservers/RemoteHomeServer.cs
@@ -83,6 +83,10 @@ public class RemoteHomeserver { } while (limit > 0 && limit-- > 0); } + public async Task<RoomDirectoryVisibilityResponse> GetRoomDirectoryVisibilityAsync(string roomId) + => await (await ClientHttpClient.GetAsync($"/_matrix/client/v3/directory/list/room/{HttpUtility.UrlEncode(roomId)}")).Content + .ReadFromJsonAsync<RoomDirectoryVisibilityResponse>() ?? throw new InvalidOperationException(); + #region Authentication public async Task<LoginResponse> LoginAsync(string username, string password, string? deviceName = null) { @@ -120,6 +124,17 @@ public class RemoteHomeserver { public UserInteractiveAuthClient Auth; } +public class RoomDirectoryVisibilityResponse { + [JsonPropertyName("visibility")] + public VisibilityValue Visibility { get; set; } + + [JsonConverter(typeof(JsonStringEnumConverter))] + public enum VisibilityValue { + [JsonStringEnumMemberName("public")] Public, + [JsonStringEnumMemberName("private")] Private + } +} + public class PublicRoomDirectoryResult { [JsonPropertyName("chunk")] public List<PublicRoomListItem> Chunk { get; set; }