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; }
|