34 lines
1.3 KiB
Python
34 lines
1.3 KiB
Python
from app.chat.dao import ChatDAO
|
|
from app.chat.shemas import SMessage
|
|
|
|
|
|
class MessageService:
|
|
@staticmethod
|
|
async def send_message(user_id: int, chat_id: int, message: str, image_url: str | None = None) -> SMessage:
|
|
new_message = await ChatDAO.send_message(user_id=user_id, chat_id=chat_id, message=message, image_url=image_url)
|
|
return new_message
|
|
|
|
@staticmethod
|
|
async def add_answer(self_id: int, answer_id: int) -> SMessage:
|
|
new_message = await ChatDAO.add_answer(self_id=self_id, answer_id=answer_id)
|
|
return new_message
|
|
|
|
@staticmethod
|
|
async def delete_message(message_id: int) -> bool:
|
|
new_message = await ChatDAO.delete_message(message_id=message_id)
|
|
return new_message
|
|
|
|
@staticmethod
|
|
async def edit_message(message_id: int, new_message: str, new_image_url: str) -> bool:
|
|
new_message = await ChatDAO.edit_message(message_id=message_id, new_message=new_message, new_image_url=new_image_url)
|
|
return new_message
|
|
|
|
@staticmethod
|
|
async def pin_message(chat_id: int, user_id: int, message_id: int) -> SMessage:
|
|
pinned_message = await ChatDAO.pin_message(chat_id=chat_id, message_id=message_id, user_id=user_id)
|
|
return pinned_message
|
|
|
|
@staticmethod
|
|
async def unpin_message(chat_id: int, message_id: int) -> int:
|
|
unpinned_message = await ChatDAO.unpin_message(chat_id=chat_id, message_id=message_id)
|
|
return unpinned_message
|