Refactoring
1 files changed, 28 insertions, 16 deletions
diff --git a/MatrixRoomUtils.Core/AuthenticatedHomeServer.cs b/MatrixRoomUtils.Core/AuthenticatedHomeServer.cs
index dd9aa25..031b6b6 100644
--- a/MatrixRoomUtils.Core/AuthenticatedHomeServer.cs
+++ b/MatrixRoomUtils.Core/AuthenticatedHomeServer.cs
@@ -1,8 +1,10 @@
using System.Net.Http.Headers;
using System.Net.Http.Json;
using System.Text.Json;
+using MatrixRoomUtils.Core.Extensions;
+using MatrixRoomUtils.Core.Interfaces;
-namespace MatrixRoomUtils;
+namespace MatrixRoomUtils.Core;
public class AuthenticatedHomeServer : IHomeServer
{
@@ -15,18 +17,20 @@ public class AuthenticatedHomeServer : IHomeServer
AccessToken = accessToken;
HomeServerDomain = canonicalHomeServerDomain;
_httpClient = new HttpClient();
-
- var rhsfwt = ResolveHomeserverFromWellKnown(canonicalHomeServerDomain);
- rhsfwt.ContinueWith(_ =>
- {
- FullHomeServerDomain = rhsfwt.Result;
- _httpClient.Dispose();
- _httpClient = new HttpClient {BaseAddress = new Uri(FullHomeServerDomain)};
- _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", AccessToken);
- Console.WriteLine("[AHS] Finished setting up http client :)");
- });
}
+ public async Task<AuthenticatedHomeServer> Configure()
+ {
+ FullHomeServerDomain = await ResolveHomeserverFromWellKnown(HomeServerDomain);
+ _httpClient.Dispose();
+ _httpClient = new HttpClient { BaseAddress = new Uri(FullHomeServerDomain) };
+ _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", AccessToken);
+ Console.WriteLine("[AHS] Finished setting up http client");
+
+ return this;
+ }
+
+
public async Task<Room> GetRoom(string roomId)
{
return new Room(_httpClient, roomId);
@@ -35,19 +39,27 @@ public class AuthenticatedHomeServer : IHomeServer
public async Task<List<Room>> GetJoinedRooms()
{
var rooms = new List<Room>();
- var _rooms = await _httpClient.GetAsync("/_matrix/client/v3/joined_rooms");
- if (!_rooms.IsSuccessStatusCode)
+ var roomQuery = await _httpClient.GetAsync("/_matrix/client/v3/joined_rooms");
+ if (!roomQuery.IsSuccessStatusCode)
{
- Console.WriteLine($"Failed to get rooms: {await _rooms.Content.ReadAsStringAsync()}");
- throw new InvalidDataException($"Failed to get rooms: {await _rooms.Content.ReadAsStringAsync()}");
+ Console.WriteLine($"Failed to get rooms: {await roomQuery.Content.ReadAsStringAsync()}");
+ throw new InvalidDataException($"Failed to get rooms: {await roomQuery.Content.ReadAsStringAsync()}");
}
+
- var roomsJson = await _rooms.Content.ReadFromJsonAsync<JsonElement>();
+ var roomsJson = await roomQuery.Content.ReadFromJsonAsync<JsonElement>();
foreach (var room in roomsJson.GetProperty("joined_rooms").EnumerateArray())
{
rooms.Add(new Room(_httpClient, room.GetString()));
}
+
+ Console.WriteLine($"Fetched {rooms.Count} rooms");
return rooms;
}
+
+ public async Task<string> ResolveMediaUri(string mxc)
+ {
+ return mxc.Replace("mxc://", $"{FullHomeServerDomain}/_matrix/media/r0/download/");
+ }
}
\ No newline at end of file
|