diff --git a/DysonNetwork.Pass/Auth/OpenId/ConnectionController.cs b/DysonNetwork.Pass/Auth/OpenId/ConnectionController.cs index 2f5dadb..625a200 100644 --- a/DysonNetwork.Pass/Auth/OpenId/ConnectionController.cs +++ b/DysonNetwork.Pass/Auth/OpenId/ConnectionController.cs @@ -63,7 +63,7 @@ public class ConnectionController( return Ok(); } - [HttpPost("/auth/connect/apple/mobile")] + [HttpPost("/api/auth/connect/apple/mobile")] public async Task ConnectAppleMobile([FromBody] AppleMobileConnectRequest request) { if (HttpContext.Items["CurrentUser"] is not Account.Account currentUser) diff --git a/DysonNetwork.Pass/Auth/OpenId/OidcController.cs b/DysonNetwork.Pass/Auth/OpenId/OidcController.cs index 594675f..d21cfd8 100644 --- a/DysonNetwork.Pass/Auth/OpenId/OidcController.cs +++ b/DysonNetwork.Pass/Auth/OpenId/OidcController.cs @@ -69,7 +69,8 @@ public class OidcController( /// [HttpPost("apple/mobile")] public async Task> AppleMobileLogin( - [FromBody] AppleMobileSignInRequest request) + [FromBody] AppleMobileSignInRequest request + ) { try { diff --git a/DysonNetwork.Pass/Startup/ServiceCollectionExtensions.cs b/DysonNetwork.Pass/Startup/ServiceCollectionExtensions.cs index 20c3279..871d046 100644 --- a/DysonNetwork.Pass/Startup/ServiceCollectionExtensions.cs +++ b/DysonNetwork.Pass/Startup/ServiceCollectionExtensions.cs @@ -16,6 +16,7 @@ using System.Threading.RateLimiting; using DysonNetwork.Pass.Auth.OidcProvider.Options; using DysonNetwork.Pass.Auth.OidcProvider.Services; using DysonNetwork.Pass.Handlers; +using DysonNetwork.Pass.Safety; using DysonNetwork.Pass.Wallet.PaymentHandlers; using DysonNetwork.Shared.Cache; using DysonNetwork.Shared.GeoIp; @@ -200,6 +201,7 @@ public static class ServiceCollectionExtensions services.AddScoped(); services.AddScoped(); services.AddScoped(); + services.AddScoped(); services.Configure(configuration.GetSection("OidcProvider")); services.AddScoped(); diff --git a/DysonNetwork.Sphere/Chat/ChatController.cs b/DysonNetwork.Sphere/Chat/ChatController.cs index 7429e5f..49cc663 100644 --- a/DysonNetwork.Sphere/Chat/ChatController.cs +++ b/DysonNetwork.Sphere/Chat/ChatController.cs @@ -129,11 +129,11 @@ public partial class ChatController( var message = await db.ChatMessages .Where(m => m.Id == messageId && m.ChatRoomId == roomId) .Include(m => m.Sender) - .Include(m => m.Sender.Account) - .Include(m => m.Sender.Account.Profile) .FirstOrDefaultAsync(); if (message is null) return NotFound(); + + message.Sender = await crs.LoadMemberAccount(message.Sender); return Ok(message); } diff --git a/DysonNetwork.Sphere/Chat/ChatRoomController.cs b/DysonNetwork.Sphere/Chat/ChatRoomController.cs index 17d4690..80ea360 100644 --- a/DysonNetwork.Sphere/Chat/ChatRoomController.cs +++ b/DysonNetwork.Sphere/Chat/ChatRoomController.cs @@ -634,8 +634,6 @@ public class ChatRoomController( .Where(m => m.AccountId == accountId) .Where(m => m.JoinedAt == null) .Include(e => e.ChatRoom) - .Include(e => e.Account) - .Include(e => e.Account.Profile) .ToListAsync(); var chatRooms = members.Select(m => m.ChatRoom).ToList(); @@ -644,8 +642,8 @@ public class ChatRoomController( foreach (var member in members.Where(member => member.ChatRoom.Type == ChatRoomType.DirectMessage)) member.ChatRoom.Members = directMembers[member.ChatRoom.Id]; - - return members.ToList(); + + return Ok(await crs.LoadMemberAccounts(members)); } [HttpPost("invites/{roomId:guid}/accept")] diff --git a/DysonNetwork.Sphere/Chat/ChatService.cs b/DysonNetwork.Sphere/Chat/ChatService.cs index c6a5ec3..6e134b0 100644 --- a/DysonNetwork.Sphere/Chat/ChatService.cs +++ b/DysonNetwork.Sphere/Chat/ChatService.cs @@ -341,6 +341,15 @@ public partial class ChatService( m => m!.ChatRoomId, m => m ); + + var messageSenders = messages + .Select(m => m.Value!.Sender) + .DistinctBy(x => x.Id) + .ToList(); + messageSenders = await crs.LoadMemberAccounts(messageSenders); + + foreach (var message in messages) + message.Value!.Sender = messageSenders.First(x => x.Id == message.Value.SenderId); return messages; }