feat(realtime): sync message edits and deletes instantly

This commit is contained in:
2026-03-08 13:17:09 +03:00
parent eda84d4d82
commit 13b5f5b855
5 changed files with 70 additions and 1 deletions

View File

@@ -77,7 +77,9 @@ async def edit_message(
db: AsyncSession = Depends(get_db),
current_user: User = Depends(get_current_user),
) -> MessageRead:
return await update_message(db, message_id=message_id, user_id=current_user.id, payload=payload)
message = await update_message(db, message_id=message_id, user_id=current_user.id, payload=payload)
await realtime_gateway.publish_message_updated(message=message)
return message
@router.delete("/{message_id}", status_code=status.HTTP_204_NO_CONTENT)
@@ -91,6 +93,7 @@ async def remove_message(
message = await get_message_by_id(db, message_id)
await delete_message_for_all(db, message_id=message_id, user_id=current_user.id)
if message:
await realtime_gateway.publish_message_deleted(chat_id=message.chat_id, message_id=message_id)
await realtime_gateway.publish_chat_updated(chat_id=message.chat_id)
return
await delete_message(db, message_id=message_id, user_id=current_user.id)