30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
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)
|