From f41b6e5ec431c88bc1d94e4832d8ba49ddc42004 Mon Sep 17 00:00:00 2001 From: "Emma [it/its]@Rory&" Date: Tue, 5 Mar 2024 11:19:52 +0100 Subject: HomeserverEmulator work --- .../Controllers/VersionsController.cs | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'Tests/LibMatrix.HomeserverEmulator/Controllers/VersionsController.cs') diff --git a/Tests/LibMatrix.HomeserverEmulator/Controllers/VersionsController.cs b/Tests/LibMatrix.HomeserverEmulator/Controllers/VersionsController.cs index 1349fac..704e26b 100644 --- a/Tests/LibMatrix.HomeserverEmulator/Controllers/VersionsController.cs +++ b/Tests/LibMatrix.HomeserverEmulator/Controllers/VersionsController.cs @@ -1,4 +1,5 @@ using System.Text.Json.Nodes; +using System.Text.Json.Serialization; using LibMatrix.Homeservers; using LibMatrix.Responses; using LibMatrix.Services; @@ -45,4 +46,47 @@ public class VersionsController(ILogger logger) : Controlle }; return clientVersions; } + + [HttpGet("client/{version}/capabilities")] + public async Task GetCapabilities() { + return new() { + Capabilities = new() { + ChangePassword = new() { + Enabled = false + }, + RoomVersions = new() { + Default = "11", + Available = new() { + ["11"] = "unstable" + } + } + } + }; + } +} + +public class CapabilitiesResponse { + [JsonPropertyName("capabilities")] + public CapabilitiesContent Capabilities { get; set; } + + public class CapabilitiesContent { + [JsonPropertyName("m.room_versions")] + public RoomVersionsContent RoomVersions { get; set; } + + [JsonPropertyName("m.change_password")] + public ChangePasswordContent ChangePassword { get; set; } + + public class ChangePasswordContent { + [JsonPropertyName("enabled")] + public bool Enabled { get; set; } + } + + public class RoomVersionsContent { + [JsonPropertyName("default")] + public string Default { get; set; } + + [JsonPropertyName("available")] + public Dictionary Available { get; set; } + } + } } \ No newline at end of file -- cgit 1.4.1