This commit is contained in:
2025-12-12 13:30:09 +03:00
commit 2f1e1f35e3
75 changed files with 4603 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
from uuid import UUID
from fastapi import APIRouter, Depends
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy import select
from sqlalchemy.orm import selectinload
from ..database import get_db
from ..models.message import Message
from ..schemas.message import MessageResponse
router = APIRouter(prefix="/api/rooms", tags=["messages"])
@router.get("/{room_id}/messages", response_model=list[MessageResponse])
async def get_messages(
room_id: UUID,
limit: int = 50,
db: AsyncSession = Depends(get_db),
):
result = await db.execute(
select(Message)
.options(selectinload(Message.user))
.where(Message.room_id == room_id)
.order_by(Message.created_at.desc())
.limit(limit)
)
messages = result.scalars().all()
return [
MessageResponse(
id=msg.id,
room_id=msg.room_id,
user_id=msg.user_id,
username=msg.user.username,
text=msg.text,
created_at=msg.created_at,
)
for msg in reversed(messages)
]