from fastapi import APIRouter, HTTPException from server.errors import call from server.schemas import SessionBody, device_payload from server.services.login import login from server.services.profile_poller import profile_poller from server.services.sessions import sessions router = APIRouter(prefix="/api") @router.post("/me") def me(body: SessionBody): return call(lambda: login.current(body.token, device_payload(body.device))) @router.get("/profile") def profile(): data = sessions.snapshot() if data is None: raise HTTPException(status_code=404, detail="未登录") return data @router.post("/logout") def logout(body: SessionBody): token = body.token.strip() profile_poller.stop_if(token) sessions.clear(token) return {"ok": True}