d30c7e37a6
##前端美化和bug修复 #### 💄 美化 - **前端美化**:对于整个前端效果进行了重新设计,现在的前端看起来会更立体。 #### 🐛 修复 - **前端演示**:修复了前端展示workflow列表的bug,但是workflow的具体条目显示由于序列化导致仍然有问题。 - **密钥修复**:对于secret_key现在在使用默认情况时,会强制生成一个安全的密钥。
46 lines
2.0 KiB
Python
46 lines
2.0 KiB
Python
from sqlmodel import select
|
|
from typing import List, Optional
|
|
from pretor.core.database.table.event import EventRecord
|
|
from sqlalchemy.ext.asyncio import async_sessionmaker, AsyncSession
|
|
|
|
class EventDatabase:
|
|
def __init__(self, async_session_maker: async_sessionmaker[AsyncSession]):
|
|
self.async_session_maker = async_session_maker
|
|
|
|
async def upsert_event(self, trace_id: str, event_data_json: str) -> EventRecord:
|
|
async with self.async_session_maker() as session:
|
|
statement = select(EventRecord).where(EventRecord.trace_id == trace_id)
|
|
results = await session.execute(statement)
|
|
record = results.scalar_one_or_none()
|
|
if record:
|
|
record.event_data_json = event_data_json
|
|
else:
|
|
record = EventRecord(trace_id=trace_id, event_data_json=event_data_json)
|
|
session.add(record)
|
|
await session.commit()
|
|
await session.refresh(record)
|
|
return record
|
|
|
|
async def get_event(self, trace_id: str) -> Optional[EventRecord]:
|
|
async with self.async_session_maker() as session:
|
|
statement = select(EventRecord).where(EventRecord.trace_id == trace_id)
|
|
results = await session.execute(statement)
|
|
return results.scalar_one_or_none()
|
|
|
|
async def get_all_events(self) -> List[EventRecord]:
|
|
async with self.async_session_maker() as session:
|
|
statement = select(EventRecord)
|
|
results = await session.execute(statement)
|
|
return results.scalars().all()
|
|
|
|
async def delete_event(self, trace_id: str) -> bool:
|
|
async with self.async_session_maker() as session:
|
|
statement = select(EventRecord).where(EventRecord.trace_id == trace_id)
|
|
results = await session.execute(statement)
|
|
record = results.scalar_one_or_none()
|
|
if record:
|
|
await session.delete(record)
|
|
await session.commit()
|
|
return True
|
|
return False
|