"""IDM route dependencies; resolve the current optional Core capability per call.""" from fastapi import HTTPException, status from govoplan_core.core.identity import CAPABILITY_IDENTITY_DIRECTORY, IdentityDirectory def require_identity_directory(registry: object | None) -> IdentityDirectory: if registry is None or not registry.has_capability(CAPABILITY_IDENTITY_DIRECTORY): raise HTTPException( status_code=status.HTTP_503_SERVICE_UNAVAILABLE, detail="Identity directory is unavailable", ) capability = registry.require_capability(CAPABILITY_IDENTITY_DIRECTORY) if not isinstance(capability, IdentityDirectory): raise HTTPException( status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail=f"Invalid capability: {CAPABILITY_IDENTITY_DIRECTORY}", ) return capability