30 lines
1010 B
Python
30 lines
1010 B
Python
"""Чтение журнала событий."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from fastapi import APIRouter, Depends
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.api.deps import get_current_user
|
|
from app.db.session import get_db
|
|
from app.models.journal import JournalEntry
|
|
from app.models.user import User
|
|
from app.schemas.journal import JournalEntryRead
|
|
|
|
router = APIRouter(prefix="/api/journal", tags=["journal"])
|
|
|
|
|
|
@router.get("/", response_model=list[JournalEntryRead], summary="Журнал пользователя")
|
|
def list_journal(
|
|
*, db: Session = Depends(get_db), current_user: User = Depends(get_current_user)
|
|
) -> list[JournalEntryRead]:
|
|
"""Возвращаем записи, отсортированные по времени."""
|
|
|
|
entries = (
|
|
db.query(JournalEntry)
|
|
.filter(JournalEntry.user_id == current_user.id)
|
|
.order_by(JournalEntry.created_at.desc())
|
|
.all()
|
|
)
|
|
return [JournalEntryRead.model_validate(entry) for entry in entries]
|