Module Package Release / publish-packages (push) Successful in 18s
Release v0.1.26. Coordinated integrity review: GovOPlaN/govoplan-core#298.
21 lines
870 B
Python
Executable File
21 lines
870 B
Python
Executable File
"""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
|