Initial commit
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
# app/api/session.py
|
||||
from fastapi import APIRouter, Depends, Request
|
||||
from pydantic import BaseModel
|
||||
from typing import Optional
|
||||
from app.core.security import require_auth
|
||||
|
||||
router = APIRouter(prefix="/session", tags=["session"])
|
||||
|
||||
# Глобальная переменная для хранения экземпляра SessionManager
|
||||
_session_manager = None
|
||||
|
||||
def set_session_manager(session_manager):
|
||||
"""Устанавливает глобальный экземпляр SessionManager"""
|
||||
global _session_manager
|
||||
_session_manager = session_manager
|
||||
|
||||
def get_session_manager():
|
||||
"""Возвращает глобальный экземпляр SessionManager"""
|
||||
return _session_manager
|
||||
|
||||
class SessionStatus(BaseModel):
|
||||
"""Модель для статуса сессии"""
|
||||
active: bool
|
||||
time_left: float
|
||||
start_time: Optional[str] = None
|
||||
end_time: Optional[str] = None
|
||||
|
||||
@router.get("/status", response_model=SessionStatus)
|
||||
async def get_session_status(request: Request, token: str = Depends(require_auth)):
|
||||
"""Получить текущий статус сессии"""
|
||||
session_manager = get_session_manager()
|
||||
if not session_manager:
|
||||
return SessionStatus(active=False, time_left=0)
|
||||
|
||||
return session_manager.get_session_status()
|
||||
Reference in New Issue
Block a user