29 lines
821 B
Python
29 lines
821 B
Python
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass
|
|
|
|
from fastapi import Header
|
|
|
|
from app.config import settings
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class ProjectContext:
|
|
tenant_id: str
|
|
project_id: str
|
|
graph_name: str
|
|
|
|
|
|
def get_project_context(
|
|
x_kg_tenant_id: str | None = Header(default=None, alias="X-KG-Tenant-Id"),
|
|
x_kg_project_id: str | None = Header(default=None, alias="X-KG-Project-Id"),
|
|
x_kg_graph_name: str | None = Header(default=None, alias="X-KG-Graph-Name"),
|
|
) -> ProjectContext:
|
|
project_id = (x_kg_project_id or settings.default_project).strip()
|
|
return ProjectContext(
|
|
tenant_id=(x_kg_tenant_id or settings.default_tenant).strip(),
|
|
project_id=project_id,
|
|
graph_name=(x_kg_graph_name or project_id or settings.falkordb_graph).strip(),
|
|
)
|
|
|