File size: 1,081 Bytes
89419ea | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | """External capabilities route."""
from __future__ import annotations
from typing import Any, Dict
from fastapi import APIRouter, Depends, HTTPException, status
from ...deps.external_auth import require_external_api_key
router = APIRouter(dependencies=[Depends(require_external_api_key)])
def _get_external_capabilities() -> Dict[str, Any]:
"""Adapter hook for core capability provider (implemented separately)."""
try:
from ....core.email_service_catalog import build_external_capabilities # type: ignore
except Exception as exc: # pragma: no cover - handled by route
raise RuntimeError("external_capabilities_provider_unavailable") from exc
return build_external_capabilities()
@router.get("", summary="Get external API capabilities")
def get_external_capabilities() -> Dict[str, Any]:
try:
payload = _get_external_capabilities()
return payload
except RuntimeError as exc:
raise HTTPException(
status_code=status.HTTP_503_SERVICE_UNAVAILABLE,
detail=str(exc),
) from exc
|