feat: creating chats for cards and clients, sending and deleting text messages
This commit is contained in:
73
routers/chat.py
Normal file
73
routers/chat.py
Normal file
@@ -0,0 +1,73 @@
|
||||
from typing import Annotated
|
||||
|
||||
from fastapi import APIRouter, Depends
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from backend.session import get_session
|
||||
from schemas.chat import *
|
||||
from services.chat import ChatService
|
||||
|
||||
chat_router = APIRouter(
|
||||
prefix='/chat',
|
||||
tags=['chat'],
|
||||
)
|
||||
|
||||
|
||||
@chat_router.post(
|
||||
'/message',
|
||||
operation_id='send_message',
|
||||
response_model=SendMessageResponse,
|
||||
)
|
||||
async def send_message(
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
request: SendMessageRequest,
|
||||
):
|
||||
return await ChatService(session).send_message(request)
|
||||
|
||||
|
||||
@chat_router.delete(
|
||||
'/message/{message_id}',
|
||||
operation_id='delete_message',
|
||||
response_model=DeleteMessageResponse,
|
||||
)
|
||||
async def delete_message(
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
message_id: int,
|
||||
):
|
||||
return await ChatService(session).delete_message(message_id)
|
||||
|
||||
|
||||
@chat_router.post(
|
||||
'/',
|
||||
operation_id='get_chat',
|
||||
response_model=GetChatResponse,
|
||||
)
|
||||
async def get_chat(
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
request: GetChatRequest,
|
||||
):
|
||||
return await ChatService(session).get_chat(request)
|
||||
|
||||
|
||||
@chat_router.post(
|
||||
'/create',
|
||||
operation_id='create_chat',
|
||||
response_model=CreateChatResponse,
|
||||
)
|
||||
async def create_chat(
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
request: CreateChatRequest,
|
||||
):
|
||||
return await ChatService(session).create_chat(request)
|
||||
|
||||
|
||||
@chat_router.post(
|
||||
'/messages',
|
||||
operation_id='get_messages',
|
||||
response_model=GetMessagesResponse,
|
||||
)
|
||||
async def get_messages(
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
request: GetMessagesRequest,
|
||||
):
|
||||
return await ChatService(session).get_messages(request)
|
||||
Reference in New Issue
Block a user