🐛 Chat related two bug fixes

This commit is contained in:
2025-07-21 17:07:08 +08:00
parent 9ecd43ada8
commit f0e16837d6
2 changed files with 9 additions and 8 deletions

View File

@@ -19,6 +19,7 @@ public class RealtimeCallController(
IConfiguration configuration, IConfiguration configuration,
AppDatabase db, AppDatabase db,
ChatService cs, ChatService cs,
ChatRoomService crs,
IRealtimeService realtime IRealtimeService realtime
) : ControllerBase ) : ControllerBase
{ {
@@ -64,6 +65,7 @@ public class RealtimeCallController(
.Include(c => c.Sender) .Include(c => c.Sender)
.FirstOrDefaultAsync(); .FirstOrDefaultAsync();
if (ongoingCall is null) return NotFound(); if (ongoingCall is null) return NotFound();
ongoingCall.Sender = await crs.LoadMemberAccount(ongoingCall.Sender);
return Ok(ongoingCall); return Ok(ongoingCall);
} }

View File

@@ -6,7 +6,7 @@ using Grpc.Core;
namespace DysonNetwork.Sphere.Connection; namespace DysonNetwork.Sphere.Connection;
public class WebSocketHandlerGrpc(PusherService.PusherServiceClient pusher, ChatRoomService crs) public class WebSocketHandlerGrpc(PusherService.PusherServiceClient pusher, ChatRoomService crs, ChatService cs)
: PusherHandlerService.PusherHandlerServiceBase : PusherHandlerService.PusherHandlerServiceBase
{ {
public override async Task<Empty> ReceiveWebSocketPacket( public override async Task<Empty> ReceiveWebSocketPacket(
@@ -34,8 +34,10 @@ public class WebSocketHandlerGrpc(PusherService.PusherServiceClient pusher, Chat
if (packet.Data == null) if (packet.Data == null)
{ {
await SendErrorResponse(request, await SendErrorResponse(
"Mark message as read requires you to provide the ChatRoomId and MessageId"); request,
"Mark message as read requires you to provide the ChatRoomId"
);
return; return;
} }
@@ -56,11 +58,8 @@ public class WebSocketHandlerGrpc(PusherService.PusherServiceClient pusher, Chat
await SendErrorResponse(request, "User is not a member of the chat room."); await SendErrorResponse(request, "User is not a member of the chat room.");
return; return;
} }
var readReceipt = new MessageReadReceipt { SenderId = sender.Id }; await cs.ReadChatRoomAsync(Guid.Parse(currentUser.Id), requestData.ChatRoomId);
var bufferService = context.GetHttpContext().RequestServices.GetRequiredService<FlushBufferService>();
bufferService.Enqueue(readReceipt);
} }
private async Task HandleMessageTyping(ReceiveWebSocketPacketRequest request, ServerCallContext context) private async Task HandleMessageTyping(ReceiveWebSocketPacketRequest request, ServerCallContext context)