about summary refs log tree commit diff
path: root/LibMatrix/Responses
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--LibMatrix/Responses/CreateRoomRequest.cs2
-rw-r--r--LibMatrix/Responses/LoginResponse.cs19
2 files changed, 16 insertions, 5 deletions
diff --git a/LibMatrix/Responses/CreateRoomRequest.cs b/LibMatrix/Responses/CreateRoomRequest.cs
index 381271b..511b3da 100644
--- a/LibMatrix/Responses/CreateRoomRequest.cs
+++ b/LibMatrix/Responses/CreateRoomRequest.cs
@@ -40,7 +40,7 @@ public class CreateRoomRequest {
     public JsonObject CreationContent { get; set; } = new();
 
     [JsonPropertyName("invite")]
-    public List<string> Invite { get; set; }
+    public List<string>? Invite { get; set; }
 
     /// <summary>
     ///     For use only when you can't use the CreationContent property
diff --git a/LibMatrix/Responses/LoginResponse.cs b/LibMatrix/Responses/LoginResponse.cs
index 175f337..eb53c0a 100644
--- a/LibMatrix/Responses/LoginResponse.cs
+++ b/LibMatrix/Responses/LoginResponse.cs
@@ -1,19 +1,30 @@
 using System.Text.Json.Serialization;
+using LibMatrix.Homeservers;
+using LibMatrix.Services;
 
 namespace LibMatrix.Responses;
 
 public class LoginResponse {
     [JsonPropertyName("access_token")]
-    public string AccessToken { get; set; }
+    public string AccessToken { get; set; } = null!;
 
     [JsonPropertyName("device_id")]
-    public string DeviceId { get; set; }
+    public string DeviceId { get; set; } = null!;
+
+    private string? _homeserver;
 
     [JsonPropertyName("home_server")]
-    public string Homeserver { get; set; }
+    public string Homeserver {
+        get => _homeserver ?? UserId.Split(':', 2).Last();
+        protected init => _homeserver = value;
+    }
 
     [JsonPropertyName("user_id")]
-    public string UserId { get; set; }
+    public string UserId { get; set; } = null!;
+
+    public async Task<AuthenticatedHomeserverGeneric> GetAuthenticatedHomeserver(string? proxy = null) {
+        return new AuthenticatedHomeserverGeneric(proxy ?? await new HomeserverResolverService().ResolveHomeserverFromWellKnown(Homeserver), AccessToken);
+    }
 }
 public class LoginRequest {
     [JsonPropertyName("type")]