ai-voicebot/server/api/sessions.py

53 lines
1.7 KiB
Python

"""
Session API endpoints for the AI Voice Bot server.
This module contains session management endpoints.
"""
from typing import TYPE_CHECKING
from fastapi import APIRouter
# Import shared models
import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))))
from shared.models import SessionResponse, HealthResponse
from logger import logger
if TYPE_CHECKING:
from ..core.session_manager import SessionManager
class SessionAPI:
"""Session API endpoint handlers"""
def __init__(self, session_manager: "SessionManager", public_url: str = "/"):
self.session_manager = session_manager
self.router = APIRouter(prefix=f"{public_url}api")
self._register_routes()
def _register_routes(self):
"""Register all session routes"""
@self.router.get("/health", response_model=HealthResponse)
def health():
return HealthResponse(status="ok")
@self.router.get("/session", response_model=SessionResponse)
def get_session():
# Create new session only
session = self.session_manager.create_session()
logger.info(f"Created new session: {session.getName()}")
return SessionResponse(
id=session.id,
name=session.name or "",
lobbies=[], # New sessions start with no lobbies
protected=False,
has_media=session.has_media,
bot_run_id=session.bot_run_id,
bot_provider_id=session.bot_provider_id,
bot_instance_id=session.bot_instance_id,
)