about summary refs log tree commit diff
path: root/MatrixRoomUtils.Core/Responses/LoginResponse.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MatrixRoomUtils.Core/Responses/LoginResponse.cs')
-rw-r--r--MatrixRoomUtils.Core/Responses/LoginResponse.cs31
1 files changed, 31 insertions, 0 deletions
diff --git a/MatrixRoomUtils.Core/Responses/LoginResponse.cs b/MatrixRoomUtils.Core/Responses/LoginResponse.cs
new file mode 100644
index 0000000..eedc970
--- /dev/null
+++ b/MatrixRoomUtils.Core/Responses/LoginResponse.cs
@@ -0,0 +1,31 @@
+using System.Net.Http.Json;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using MatrixRoomUtils.Authentication;
+
+namespace MatrixRoomUtils.Responses;
+
+public class LoginResponse
+{
+    [JsonPropertyName("access_token")]
+    public string AccessToken { get; set; }
+    [JsonPropertyName("device_id")]
+    public string DeviceId { get; set; }
+    [JsonPropertyName("home_server")]
+    public string HomeServer { get; set; }
+    [JsonPropertyName("user_id")]
+    public string UserId { get; set; }
+    
+    public async Task<ProfileResponse> GetProfile()
+    {
+        var hc = new HttpClient();
+        var resp = await hc.GetAsync($"{HomeServer}/_matrix/client/r0/profile/{UserId}");
+        var data = await resp.Content.ReadFromJsonAsync<JsonElement>();
+        if(!resp.IsSuccessStatusCode) Console.WriteLine("Profile: " + data.ToString());
+        return data.Deserialize<ProfileResponse>();
+    }
+    public async Task<string> GetCanonicalHomeserverUrl()
+    {
+        return await MatrixAccount.ResolveHomeserverFromWellKnown(HomeServer);
+    }
+}
\ No newline at end of file