31 lines
914 B
Python
31 lines
914 B
Python
from __future__ import annotations
|
|
|
|
import json
|
|
|
|
from fastapi import APIRouter, Depends
|
|
from sqlmodel import Session, select
|
|
|
|
from app.db.session import get_session
|
|
from app.models.activity import Activity
|
|
|
|
router = APIRouter(prefix="/activities", tags=["activities"])
|
|
|
|
|
|
@router.get("")
|
|
def list_activities(limit: int = 50, session: Session = Depends(get_session)):
|
|
items = session.exec(select(Activity).order_by(Activity.id.desc()).limit(max(1, min(limit, 200)))).all()
|
|
out = []
|
|
for a in items:
|
|
out.append(
|
|
{
|
|
"id": a.id,
|
|
"actor_employee_id": a.actor_employee_id,
|
|
"entity_type": a.entity_type,
|
|
"entity_id": a.entity_id,
|
|
"verb": a.verb,
|
|
"payload": json.loads(a.payload_json) if a.payload_json else None,
|
|
"created_at": a.created_at,
|
|
}
|
|
)
|
|
return out
|