Spaces:
Running
Running
| from uuid import UUID | |
| from fastapi import HTTPException | |
| from sqlmodel import select | |
| from langflow.services.database.models.flow.model import Flow | |
| from langflow.services.database.models.user.model import User, UserRead | |
| from langflow.services.deps import get_db_service | |
| async def get_user_by_flow_id_or_endpoint_name(flow_id_or_name: str) -> UserRead | None: | |
| async with get_db_service().with_async_session() as session: | |
| try: | |
| flow_id = UUID(flow_id_or_name) | |
| flow = await session.get(Flow, flow_id) | |
| except ValueError: | |
| stmt = select(Flow).where(Flow.endpoint_name == flow_id_or_name) | |
| flow = (await session.exec(stmt)).first() | |
| if flow is None: | |
| raise HTTPException(status_code=404, detail=f"Flow identifier {flow_id_or_name} not found") | |
| user = await session.get(User, flow.user_id) | |
| if user is None: | |
| raise HTTPException(status_code=404, detail=f"User for flow {flow_id_or_name} not found") | |
| return UserRead.model_validate(user, from_attributes=True) | |