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) | |