From 05289f61d7bd0650ef511cc92a8a657c493dce30 Mon Sep 17 00:00:00 2001 From: Rory& Date: Sun, 31 Dec 2023 16:38:20 +0100 Subject: Clean up swagger, clean up auth code --- ModAS.Server/Controllers/Admin/RoomQueryController.cs | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) (limited to 'ModAS.Server/Controllers/Admin') diff --git a/ModAS.Server/Controllers/Admin/RoomQueryController.cs b/ModAS.Server/Controllers/Admin/RoomQueryController.cs index a49e5c0..02100e9 100644 --- a/ModAS.Server/Controllers/Admin/RoomQueryController.cs +++ b/ModAS.Server/Controllers/Admin/RoomQueryController.cs @@ -25,16 +25,12 @@ public class RoomQueryController(UserProviderService ahsProvider, ModASConfigura getUsersSpan.End(); var collectRoomsSpan = currentTransaction.StartSpan("collectRooms", ApiConstants.TypeApp); - // var userRoomLists = validUsers.Values.Select(ahs => ahs.GetJoinedRooms()).ToList(); - // await Task.WhenAll(userRoomLists); - // var rooms = userRoomLists.SelectMany(r => r.Result).DistinctBy(x => x.RoomId).ToFrozenSet(); var roomsTasks = validUsers.Values.Select(u => userProviderService.GetUserRoomsCached(u.WhoAmI.UserId)).ToList(); await Task.WhenAll(roomsTasks); var rooms = roomsTasks.SelectMany(r => r.Result).DistinctBy(x => x.RoomId).ToFrozenSet(); collectRoomsSpan.End(); var collectRoomStateSpan = currentTransaction.StartSpan("collectRoomState", ApiConstants.TypeApp); - //make sure we lock!!!! await stateCacheService.EnsureCachedFromRoomList(rooms); var roomStateTasks = rooms.Select(GetRoomState).ToAsyncEnumerable(); var awaitRoomStateSpan = currentTransaction.StartSpan("fetchRoomState", ApiConstants.TypeApp); @@ -46,6 +42,7 @@ public class RoomQueryController(UserProviderService ahsProvider, ModASConfigura var roomMembers = roomState.Where(r => r.Type == RoomMemberEventContent.EventId).ToFrozenSet(); var localRoomMembers = roomMembers.Where(x => x.StateKey.EndsWith(':' + config.ServerName)).ToFrozenSet(); var nonMemberState = roomState.Where(x => !roomMembers.Contains(x)).ToFrozenSet(); + var creationEvent = nonMemberState.FirstOrDefault(r => r.Type == RoomCreateEventContent.EventId); filterStateEventsSpan.End(); var buildResultSpan = currentTransaction.StartSpan($"buildResult {room.RoomId}", ApiConstants.TypeApp); @@ -56,21 +53,21 @@ public class RoomQueryController(UserProviderService ahsProvider, ModASConfigura //members TotalMembers = roomMembers.Count, TotalLocalMembers = localRoomMembers.Count, - JoinedMembers = roomMembers.Count(x => (x.TypedContent as RoomMemberEventContent)?.Membership == "join"), - JoinedLocalMembers = localRoomMembers.Count(x => (x.TypedContent as RoomMemberEventContent)?.Membership == "join"), + JoinedMembers = roomMembers.Count(x => x.RawContent?["membership"]?.GetValue() == "join"), + JoinedLocalMembers = localRoomMembers.Count(x => x.RawContent?["membership"]?.GetValue() == "join"), //-members //creation event - Creator = nonMemberState.FirstOrDefault(r => r.Type == RoomCreateEventContent.EventId)?.Sender, - Version = nonMemberState.FirstOrDefault(r => r.Type == RoomCreateEventContent.EventId)?.RawContent?["room_version"]?.GetValue(), - Type = nonMemberState.FirstOrDefault(r => r.Type == RoomCreateEventContent.EventId)?.RawContent?["type"]?.GetValue(), - Federatable = nonMemberState.FirstOrDefault(r => r.Type == RoomCreateEventContent.EventId)?.RawContent?["m.federate"]?.GetValue() ?? true, + Creator = creationEvent!.Sender, + Version = creationEvent.RawContent?["room_version"]?.GetValue(), + Type = creationEvent.RawContent?["type"]?.GetValue(), + Federatable = creationEvent.RawContent?["m.federate"]?.GetValue() ?? true, //-creation event Name = nonMemberState.FirstOrDefault(r => r.Type == RoomNameEventContent.EventId)?.RawContent?["name"]?.GetValue(), CanonicalAlias = nonMemberState.FirstOrDefault(r => r.Type == RoomCanonicalAliasEventContent.EventId)?.RawContent?["alias"]?.GetValue(), - JoinRules = nonMemberState.FirstOrDefault(r => r.Type == RoomJoinRulesEventContent.EventId)?.RawContent?["join_rule"]?.GetValue(), GuestAccess = nonMemberState.FirstOrDefault(r => r.Type == RoomGuestAccessEventContent.EventId)?.RawContent?["guest_access"]?.GetValue(), HistoryVisibility = nonMemberState.FirstOrDefault(r => r.Type == RoomHistoryVisibilityEventContent.EventId)?.RawContent?["history_visibility"]?.GetValue(), + JoinRules = nonMemberState.FirstOrDefault(r => r.Type == RoomJoinRulesEventContent.EventId)?.RawContent?["join_rule"]?.GetValue(), Public = nonMemberState.FirstOrDefault(r => r.Type == RoomJoinRulesEventContent.EventId)?.RawContent?["join_rule"]?.GetValue() == "public", Encryption = nonMemberState.FirstOrDefault(r => r.Type == RoomEncryptionEventContent.EventId)?.RawContent?["algorithm"]?.GetValue(), AvatarUrl = nonMemberState.FirstOrDefault(r => r.Type == RoomAvatarEventContent.EventId)?.RawContent?["url"]?.GetValue(), -- cgit 1.5.1