"""Activity log endpoints.""" from fastapi import APIRouter, Request from pydantic import BaseModel from utils.auth import get_current_user from services.activity_log import activity_logger router = APIRouter(prefix="/api", tags=["activity"]) class LogActionRequest(BaseModel): action: str details: str = "" @router.get("/active_users") async def get_active_users(request: Request): """Get list of currently active users""" # Update current user's activity try: user_info = get_current_user(request) username = user_info.get("username", "Unknown") await activity_logger.update_user_activity(username) except: pass users = await activity_logger.get_active_users(timeout_minutes=30) return {"users": users} @router.get("/activity_logs") async def get_activity_logs(request: Request, limit: int = 100): """Get recent activity logs""" # Update current user's activity try: user_info = get_current_user(request) username = user_info.get("username", "Unknown") await activity_logger.update_user_activity(username) except: pass logs = await activity_logger.get_logs(limit=limit) return {"logs": logs} @router.post("/log_action") async def log_action(request: Request, req: LogActionRequest): """Log a user action""" user_info = get_current_user(request) username = user_info.get("username", "Unknown") await activity_logger.log_action(username, req.action, req.details) return {"status": "ok"}