Files
my_speaker_RPi3/app/api/session.py
T
2025-12-25 12:01:35 +03:00

35 lines
1.3 KiB
Python

# 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()