diff --git a/DysonNetwork.Sphere/Chat/RealtimeCallController.cs b/DysonNetwork.Sphere/Chat/RealtimeCallController.cs index 274fd58..dd5db3e 100644 --- a/DysonNetwork.Sphere/Chat/RealtimeCallController.cs +++ b/DysonNetwork.Sphere/Chat/RealtimeCallController.cs @@ -19,6 +19,7 @@ public class RealtimeCallController( IConfiguration configuration, AppDatabase db, ChatService cs, + ChatRoomService crs, IRealtimeService realtime ) : ControllerBase { @@ -64,6 +65,7 @@ public class RealtimeCallController( .Include(c => c.Sender) .FirstOrDefaultAsync(); if (ongoingCall is null) return NotFound(); + ongoingCall.Sender = await crs.LoadMemberAccount(ongoingCall.Sender); return Ok(ongoingCall); } diff --git a/DysonNetwork.Sphere/Connection/WebsocketHandler.cs b/DysonNetwork.Sphere/Connection/WebsocketHandler.cs index 5a2c84b..2abb843 100644 --- a/DysonNetwork.Sphere/Connection/WebsocketHandler.cs +++ b/DysonNetwork.Sphere/Connection/WebsocketHandler.cs @@ -6,7 +6,7 @@ using Grpc.Core; namespace DysonNetwork.Sphere.Connection; -public class WebSocketHandlerGrpc(PusherService.PusherServiceClient pusher, ChatRoomService crs) +public class WebSocketHandlerGrpc(PusherService.PusherServiceClient pusher, ChatRoomService crs, ChatService cs) : PusherHandlerService.PusherHandlerServiceBase { public override async Task ReceiveWebSocketPacket( @@ -34,8 +34,10 @@ public class WebSocketHandlerGrpc(PusherService.PusherServiceClient pusher, Chat if (packet.Data == null) { - await SendErrorResponse(request, - "Mark message as read requires you to provide the ChatRoomId and MessageId"); + await SendErrorResponse( + request, + "Mark message as read requires you to provide the ChatRoomId" + ); return; } @@ -56,11 +58,8 @@ public class WebSocketHandlerGrpc(PusherService.PusherServiceClient pusher, Chat await SendErrorResponse(request, "User is not a member of the chat room."); return; } - - var readReceipt = new MessageReadReceipt { SenderId = sender.Id }; - - var bufferService = context.GetHttpContext().RequestServices.GetRequiredService(); - bufferService.Enqueue(readReceipt); + + await cs.ReadChatRoomAsync(Guid.Parse(currentUser.Id), requestData.ChatRoomId); } private async Task HandleMessageTyping(ReceiveWebSocketPacketRequest request, ServerCallContext context)