Tai Truong
fix readme
d202ada
raw
history blame contribute delete
956 Bytes
from uuid import UUID
from sqlalchemy.exc import IntegrityError
from sqlmodel import col, select
from sqlmodel.ext.asyncio.session import AsyncSession
from langflow.services.database.models.transactions.model import TransactionBase, TransactionTable
async def get_transactions_by_flow_id(
db: AsyncSession, flow_id: UUID, limit: int | None = 1000
) -> list[TransactionTable]:
stmt = (
select(TransactionTable)
.where(TransactionTable.flow_id == flow_id)
.order_by(col(TransactionTable.timestamp))
.limit(limit)
)
transactions = await db.exec(stmt)
return list(transactions)
async def log_transaction(db: AsyncSession, transaction: TransactionBase) -> TransactionTable:
table = TransactionTable(**transaction.model_dump())
db.add(table)
try:
await db.commit()
await db.refresh(table)
except IntegrityError:
await db.rollback()
raise
return table