mirror of
https://github.com/lorsanstand/Aether.git
synced 2026-06-19 12:05:16 +03:00
fix: send and recive message
This commit is contained in:
@@ -51,7 +51,7 @@ async def get_current_superuser(current_user: UserModel = Depends(get_current_us
|
||||
|
||||
async def get_current_verified_user(current_user: UserModel = Depends(get_current_user)):
|
||||
if not current_user.is_verified:
|
||||
log.debug("User has not confirmed the email.", extra={"user_id": str(current_user.id)})
|
||||
raise HTTPException(status.HTTP_403_FORBIDDEN, detail="verify email")
|
||||
log.debug("User has not confirmed the email", extra={"user_id": str(current_user.id)})
|
||||
raise HTTPException(status.HTTP_403_FORBIDDEN, detail="Verify email")
|
||||
|
||||
return current_user
|
||||
@@ -92,14 +92,16 @@ class ChatService:
|
||||
)
|
||||
)
|
||||
|
||||
await cls._send_ws_message(members_ids, Message.model_validate(message_db))
|
||||
|
||||
await ChatDAO.update(
|
||||
session,
|
||||
ChatModel.id==target_chat_id,
|
||||
obj_in={"last_message": message.content}
|
||||
)
|
||||
await session.commit()
|
||||
|
||||
# Send WebSocket message AFTER commit to ensure data is persisted
|
||||
await cls._send_ws_message(members_ids, Message.model_validate(message_db))
|
||||
|
||||
log.info("Message sent", extra={"message_id": message_db.id, "sender_id": sender.id, "chat_id": target_chat_id})
|
||||
return message_db
|
||||
|
||||
@@ -202,9 +204,11 @@ class ChatService:
|
||||
|
||||
member_ids = [member.user_id for member in members]
|
||||
|
||||
await session.commit()
|
||||
|
||||
# Send WebSocket message AFTER commit
|
||||
await cls._send_ws_message(member_ids, Message.model_validate(message_update_db))
|
||||
|
||||
await session.commit()
|
||||
log.info("Message update successfully", extra={"user_id": user.id, "message_id": message_update.id})
|
||||
return message_update_db
|
||||
|
||||
@@ -234,8 +238,10 @@ class ChatService:
|
||||
member_ids = [member.user_id for member in members]
|
||||
|
||||
await MessageDAO.delete(session, MessageModel.id==message_id)
|
||||
|
||||
|
||||
await session.commit()
|
||||
|
||||
# Send WebSocket message AFTER commit
|
||||
await cls._delete_ws_message(member_ids, message_id)
|
||||
|
||||
await session.commit()
|
||||
log.info("Message delete successfully", extra={"user_id": user.id, "message_id": message_exist.id})
|
||||
@@ -18,7 +18,7 @@ class PubSubMessenger:
|
||||
|
||||
@classmethod
|
||||
async def subscribe_to_channels(cls):
|
||||
print("test")
|
||||
log.info("Starting Redis PubSub subscriber")
|
||||
redis_client = await get_redis()
|
||||
pubsub = redis_client.pubsub()
|
||||
|
||||
@@ -46,11 +46,14 @@ class PubSubMessenger:
|
||||
@classmethod
|
||||
async def handle_message(cls, payload, ws: WebSocket):
|
||||
log.debug("Message start sending type: %s", payload["type"])
|
||||
if payload["type"] == "send":
|
||||
await ws.send_json(payload["data"])
|
||||
elif payload["type"] == "del":
|
||||
await ws.send_json({"type": "del", "message_id": payload["data"]})
|
||||
log.info(f"Message sent to user via WebSocket")
|
||||
try:
|
||||
if payload["type"] == "send":
|
||||
await ws.send_json(payload["data"])
|
||||
elif payload["type"] == "del":
|
||||
await ws.send_json({"type": "del", "message_id": payload["data"]})
|
||||
log.info(f"Message sent to user via WebSocket")
|
||||
except Exception as e:
|
||||
log.error(f"Error sending WebSocket message: {e}", exc_info=True)
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user