Почистил вебсокет
This commit is contained in:
parent
9055fe1f29
commit
2b8fb526ac
1 changed files with 19 additions and 38 deletions
|
@ -8,7 +8,7 @@ from app.services.message_service import MessageService
|
|||
from app.unit_of_work import UnitOfWork
|
||||
from app.utils.auth import AuthService
|
||||
from app.chat.router import router
|
||||
from app.chat.shemas import SSendMessage, SMessage, SDeleteMessage, SEditMessage, SPinMessage, SUnpinMessage
|
||||
from app.chat.shemas import SSendMessage, SDeleteMessage, SEditMessage, SPinMessage, SUnpinMessage
|
||||
from app.users.dependencies import get_current_user_ws, get_token, get_subprotocol_ws
|
||||
from app.users.schemas import SUser
|
||||
|
||||
|
@ -41,33 +41,38 @@ class ConnectionManager:
|
|||
except KeyError:
|
||||
raise IncorrectDataException
|
||||
|
||||
async def send(self, uow: UnitOfWork, user_id: int, chat_id: int, message: dict) -> dict:
|
||||
@staticmethod
|
||||
async def send(uow: UnitOfWork, user_id: int, chat_id: int, message: dict) -> dict:
|
||||
message = SSendMessage.model_validate(message)
|
||||
|
||||
new_message = await self.add_message_to_database(uow=uow, user_id=user_id, chat_id=chat_id, message=message)
|
||||
new_message = await MessageService.send_message(
|
||||
uow=uow, user_id=user_id, chat_id=chat_id, message=message, image_url=message.image_url
|
||||
)
|
||||
new_message = new_message.model_dump()
|
||||
new_message["created_at"] = new_message["created_at"].isoformat()
|
||||
new_message["flag"] = "send"
|
||||
return new_message
|
||||
|
||||
async def delete(self, uow: UnitOfWork, user_id: int, _: int, message: dict) -> dict:
|
||||
@staticmethod
|
||||
async def delete(uow: UnitOfWork, user_id: int, _: int, message: dict) -> dict:
|
||||
message = SDeleteMessage.model_validate(message)
|
||||
|
||||
if message.user_id != user_id:
|
||||
raise UserDontHavePermissionException
|
||||
|
||||
await self.delete_message(uow=uow, message_id=message.id)
|
||||
await MessageService.delete_message(uow=uow, message_id=message.id)
|
||||
new_message = {"id": message.id, "flag": "delete"}
|
||||
return new_message
|
||||
|
||||
async def edit(self, uow: UnitOfWork, user_id: int, _: int, message: dict) -> dict:
|
||||
@staticmethod
|
||||
async def edit(uow: UnitOfWork, user_id: int, _: int, message: dict) -> dict:
|
||||
message = SEditMessage.model_validate(message)
|
||||
|
||||
if message.user_id != user_id:
|
||||
raise UserDontHavePermissionException
|
||||
|
||||
await self.edit_message(
|
||||
uow=uow, message_id=message.id, new_message=message.new_message, image_url=message.new_image_url
|
||||
await MessageService.edit_message(
|
||||
uow=uow, message_id=message.id, new_message=message.new_message, new_image_url=message.new_image_url
|
||||
)
|
||||
new_message = {
|
||||
"flag": "edit",
|
||||
|
@ -77,9 +82,10 @@ class ConnectionManager:
|
|||
}
|
||||
return new_message
|
||||
|
||||
async def pin(self, uow: UnitOfWork, _: int, chat_id: int, message: dict) -> dict:
|
||||
@staticmethod
|
||||
async def pin(uow: UnitOfWork, _: int, chat_id: int, message: dict) -> dict:
|
||||
message = SPinMessage.model_validate(message)
|
||||
pinned_message = await self.pin_message(
|
||||
pinned_message = await MessageService.pin_message(
|
||||
uow=uow, chat_id=chat_id, user_id=message.user_id, message_id=message.id
|
||||
)
|
||||
new_message = pinned_message.model_dump()
|
||||
|
@ -87,38 +93,13 @@ class ConnectionManager:
|
|||
new_message["flag"] = "pin"
|
||||
return new_message
|
||||
|
||||
async def unpin(self, uow: UnitOfWork, _: int, chat_id: int, message: dict) -> dict:
|
||||
@staticmethod
|
||||
async def unpin(uow: UnitOfWork, _: int, chat_id: int, message: dict) -> dict:
|
||||
message = SUnpinMessage.model_validate(message)
|
||||
await self.unpin_message(uow=uow, chat_id=chat_id, message_id=message.id)
|
||||
await MessageService.unpin_message(uow=uow, chat_id=chat_id, message_id=message.id)
|
||||
new_message = {"flag": "unpin", "id": message.id}
|
||||
return new_message
|
||||
|
||||
@staticmethod
|
||||
async def add_message_to_database(uow: UnitOfWork, user_id: int, chat_id: int, message: SSendMessage) -> SMessage:
|
||||
new_message = await MessageService.send_message(
|
||||
uow=uow, user_id=user_id, chat_id=chat_id, message=message, image_url=message.image_url
|
||||
)
|
||||
return new_message
|
||||
|
||||
@staticmethod
|
||||
async def delete_message(uow: UnitOfWork, message_id: int) -> None:
|
||||
await MessageService.delete_message(uow=uow, message_id=message_id)
|
||||
|
||||
@staticmethod
|
||||
async def edit_message(uow: UnitOfWork, message_id: int, new_message: str, image_url: str) -> None:
|
||||
await MessageService.edit_message(
|
||||
uow=uow, message_id=message_id, new_message=new_message, new_image_url=image_url
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
async def pin_message(uow: UnitOfWork, chat_id: int, user_id: int, message_id: int) -> SMessage:
|
||||
pinned_message = await MessageService.pin_message(uow=uow, chat_id=chat_id, user_id=user_id, message_id=message_id)
|
||||
return pinned_message
|
||||
|
||||
@staticmethod
|
||||
async def unpin_message(uow: UnitOfWork, chat_id: int, message_id: int) -> None:
|
||||
await MessageService.unpin_message(uow=uow, chat_id=chat_id, message_id=message_id)
|
||||
|
||||
|
||||
manager = ConnectionManager()
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue