feat: sending and receiving messages with files, editing text messages
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
from typing import Annotated
|
||||
|
||||
from fastapi import APIRouter, Depends
|
||||
from fastapi import APIRouter, Depends, UploadFile
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from backend.session import get_session
|
||||
@@ -15,16 +15,42 @@ chat_router = APIRouter(
|
||||
|
||||
@chat_router.post(
|
||||
'/message',
|
||||
operation_id='send_message',
|
||||
response_model=SendMessageResponse,
|
||||
operation_id='send_text_message',
|
||||
response_model=SendTextMessageResponse,
|
||||
)
|
||||
async def send_message(
|
||||
async def send_text_message(
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
request: SendMessageRequest,
|
||||
request: SendTextMessageRequest,
|
||||
):
|
||||
return await ChatService(session).send_message(request)
|
||||
|
||||
|
||||
@chat_router.post(
|
||||
'/message/repeat',
|
||||
operation_id='repeat_sending_text_message',
|
||||
response_model=RepeatSendingTextMessageResponse,
|
||||
)
|
||||
async def repeat_sending_text_message(
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
request: RepeatSendingTextMessageRequest,
|
||||
):
|
||||
return await ChatService(session).repeat_sending_message(request)
|
||||
|
||||
|
||||
@chat_router.post(
|
||||
'/message/files',
|
||||
operation_id='send_messages_with_files',
|
||||
response_model=LoadMessagesResponse,
|
||||
)
|
||||
async def send_messages_with_files(
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
files: list[UploadFile],
|
||||
chat_id: int,
|
||||
caption: str,
|
||||
):
|
||||
return await ChatService(session).send_messages_with_files(files, chat_id, caption)
|
||||
|
||||
|
||||
@chat_router.delete(
|
||||
'/message/{message_id}',
|
||||
operation_id='delete_message',
|
||||
@@ -37,6 +63,18 @@ async def delete_message(
|
||||
return await ChatService(session).delete_message(message_id)
|
||||
|
||||
|
||||
@chat_router.patch(
|
||||
'/message',
|
||||
operation_id='edit_message',
|
||||
response_model=EditMessageResponse,
|
||||
)
|
||||
async def edit_message(
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
request: EditMessageRequest,
|
||||
):
|
||||
return await ChatService(session).edit_message(request)
|
||||
|
||||
|
||||
@chat_router.post(
|
||||
'/',
|
||||
operation_id='get_chat',
|
||||
@@ -71,3 +109,13 @@ async def get_messages(
|
||||
request: GetMessagesRequest,
|
||||
):
|
||||
return await ChatService(session).get_messages(request)
|
||||
|
||||
|
||||
@chat_router.get(
|
||||
'/tg-file/{file_id}',
|
||||
)
|
||||
async def get_tg_file(
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
file_id: int,
|
||||
):
|
||||
return await ChatService(session).get_tg_file(file_id)
|
||||
|
||||
Reference in New Issue
Block a user