Багфикс

This commit is contained in:
urec56 2024-08-20 15:34:35 +04:00
parent e85079780e
commit 785edd4f5e
3 changed files with 19 additions and 14 deletions

View file

@ -5,7 +5,7 @@ from pydantic import BaseModel, HttpUrl
class SMessage(BaseModel):
id: int | UUID # TODO: Заменить на UUID
id: UUID
message: str | None = None
image_url: str | None = None
chat_id: int
@ -13,7 +13,7 @@ class SMessage(BaseModel):
username: str
created_at: datetime
avatar_image: str
answer_id: int | None | UUID # TODO: Заменить на UUID
answer_id: UUID | None
answer_message: str | None
answer_image_url: str | None
@ -83,26 +83,26 @@ class SSendMessage(BaseModel):
class SDeleteMessage(BaseModel):
flag: str
user_id: int
id: int
id: UUID
class SEditMessage(BaseModel):
flag: str
user_id: int
id: int
id: UUID
new_message: str | None
new_image_url: str | None
class SPinMessage(BaseModel):
flag: str
id: int
id: UUID
user_id: int
class SUnpinMessage(BaseModel):
flag: str
id: int
id: UUID
class Responses:

View file

@ -58,6 +58,8 @@ class ConnectionManager:
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["id"] = str(new_message["id"])
new_message["answer_id"] = str(new_message["answer_id"]) if new_message["answer_id"] else None
new_message["created_at"] = new_message["created_at"].isoformat()
new_message["flag"] = "send"
return new_message
@ -70,7 +72,7 @@ class ConnectionManager:
raise UserDontHavePermissionException
await MessageService.delete_message(uow=uow, message_id=message.id)
new_message = {"id": message.id, "flag": "delete"}
new_message = {"id": str(message.id), "flag": "delete"}
return new_message
@staticmethod
@ -85,7 +87,7 @@ class ConnectionManager:
)
new_message = {
"flag": "edit",
"id": message.id,
"id": str(message.id),
"new_message": message.new_message,
"new_image_url": message.new_image_url,
}
@ -98,6 +100,8 @@ class ConnectionManager:
uow=uow, chat_id=chat_id, user_id=message.user_id, message_id=message.id
)
new_message = pinned_message.model_dump()
new_message["id"] = str(new_message["id"])
new_message["answer_id"] = str(new_message["answer_id"]) if new_message["answer_id"] else None
new_message["created_at"] = new_message["created_at"].isoformat()
new_message["flag"] = "pin"
return new_message
@ -106,7 +110,7 @@ class ConnectionManager:
async def _unpin(uow: UnitOfWork, _: int, chat_id: int, message: dict) -> dict:
message = SUnpinMessage.model_validate(message)
await MessageService.unpin_message(uow=uow, chat_id=chat_id, message_id=message.id)
new_message = {"flag": "unpin", "id": message.id}
new_message = {"flag": "unpin", "id": str(message.id)}
return new_message

View file

@ -1,4 +1,5 @@
from datetime import datetime, UTC, timedelta
from uuid import UUID
from app.chat.shemas import SMessage, SSendMessage, SPinnedMessages, SMessageList, SMessageRaw, SMessageRawList
from app.services.user_service import UserService
@ -68,19 +69,19 @@ class MessageService:
return new_message
@staticmethod
async def delete_message(uow: UnitOfWork, message_id: int) -> None:
async def delete_message(uow: UnitOfWork, message_id: UUID) -> None:
async with uow:
await uow.message.delete_message(message_id=message_id)
@staticmethod
async def edit_message(uow: UnitOfWork, message_id: int, new_message: str, new_image_url: str) -> None:
async def edit_message(uow: UnitOfWork, message_id: UUID, new_message: str, new_image_url: str) -> None:
async with uow:
await uow.message.edit_message(
message_id=message_id, new_message=new_message, new_image_url=new_image_url
)
@classmethod
async def pin_message(cls, uow: UnitOfWork, chat_id: int, user_id: int, message_id: int) -> SMessage:
async def pin_message(cls, uow: UnitOfWork, chat_id: int, user_id: int, message_id: UUID) -> SMessage:
async with uow:
await uow.chat.pin_message(chat_id=chat_id, message_id=message_id, user_id=user_id)
await uow.commit()
@ -91,13 +92,13 @@ class MessageService:
return pinned_message
@staticmethod
async def unpin_message(uow: UnitOfWork, chat_id: int, message_id: int) -> None:
async def unpin_message(uow: UnitOfWork, chat_id: int, message_id: UUID) -> None:
async with uow:
await uow.chat.unpin_message(chat_id=chat_id, message_id=message_id)
await uow.commit()
@classmethod
async def get_message_by_id(cls, uow: UnitOfWork, message_id: int) -> SMessage:
async def get_message_by_id(cls, uow: UnitOfWork, message_id: UUID) -> SMessage:
async with uow:
raw_message = await uow.message.get_message_by_id(message_id=message_id)
message = await cls.add_avatar_image_and_username_to_message(uow=uow, message=raw_message)