""" API Dependencies — Shared dependency injection for all routes. Auth is not here: the owner gate lives in `auth.py` (`get_current_owner` / `OwnerUser`), applied as a router-level dependency in main.py. """ from fastapi import HTTPException, Request from core.gateway import AIPSTNGateway def get_gateway(request: Request) -> AIPSTNGateway: """Get the gateway instance from app state.""" gateway = getattr(request.app.state, "gateway", None) if gateway is None: raise HTTPException(status_code=503, detail="Gateway not initialized") return gateway def get_routing_service(request: Request): """Get the routing service from app state.""" routing = getattr(request.app.state, "routing_service", None) if routing is None: raise HTTPException(status_code=503, detail="Routing service not ready") return routing