Add comprehensive rule documentation for AI-assisted development covering authentication surfaces, outbound-call safety invariants, and other project conventions to guide Claude's understanding of critical system behaviors.
27 lines
866 B
Python
27 lines
866 B
Python
"""
|
|
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
|