mp_message/core/api/message/handlers.py

30 lines
1.1 KiB
Python
Raw Normal View History

from datetime import datetime
from typing import Literal
from fastapi import APIRouter, Depends, Response
from core.helpers.auth.helpers import get_current_user
from core.models.message.db import MPProfile
from core.models.message.requests import SendMessageRequest, ListMessagesRequest
from core.services import message_service
router = APIRouter(prefix="/message", tags=["message"])
@router.post("")
async def send_message(response: Response, message: SendMessageRequest, user: MPProfile = Depends(get_current_user)):
response.status_code = 201
return (await message_service.send_message(user, message)).model_dump(exclude_none=True, by_alias=True)
@router.get("")
async def list_messages(
chat_id: int,
from_date: datetime | None = None,
to_date: datetime | None = None,
order_by: Literal['desc'] | Literal['asc'] = 'desc',
user: MPProfile = Depends(get_current_user)):
query = ListMessagesRequest(chat_id=chat_id, from_date=from_date, to_date=to_date, order_by=order_by)
return await message_service.list_messages(user, query)