mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-06 07:56:52 +08:00
refactor: isolate workflow queries
This commit is contained in:
+24
-10
@@ -66,7 +66,7 @@ class WorkflowOper(DbOper):
|
||||
新增工作流
|
||||
"""
|
||||
wf = Workflow(**kwargs)
|
||||
if not wf.get_by_name(self._db, kwargs.get("name")):
|
||||
if not self.get_by_name(kwargs.get("name")):
|
||||
self._stage_create(wf)
|
||||
return True, "新增工作流成功"
|
||||
return False, "工作流已存在"
|
||||
@@ -75,7 +75,7 @@ class WorkflowOper(DbOper):
|
||||
"""
|
||||
查询单个工作流
|
||||
"""
|
||||
return Workflow.get(self._db, wid)
|
||||
return self._execute_sync_query(lambda session: Workflow.get(session, wid))
|
||||
|
||||
def stage_state(self, workflow_id: int, state: str) -> bool:
|
||||
"""暂存工作流状态变更,不由模型方法自行提交。"""
|
||||
@@ -109,49 +109,63 @@ class WorkflowOper(DbOper):
|
||||
"""
|
||||
异步查询单个工作流
|
||||
"""
|
||||
return await Workflow.async_get(self._db, wid)
|
||||
return await self._execute_async_query(
|
||||
lambda session: Workflow.async_get(session, wid)
|
||||
)
|
||||
|
||||
def list(self) -> List[Workflow]:
|
||||
"""
|
||||
获取所有工作流列表
|
||||
"""
|
||||
return Workflow.list(self._db)
|
||||
return self._execute_sync_query(lambda session: Workflow.list(session))
|
||||
|
||||
async def async_list(self) -> List[Workflow]:
|
||||
"""
|
||||
异步获取所有工作流列表
|
||||
"""
|
||||
return await Workflow.async_list(self._db)
|
||||
return await self._execute_async_query(
|
||||
lambda session: Workflow.async_list(session)
|
||||
)
|
||||
|
||||
def list_enabled(self) -> List[Workflow]:
|
||||
"""
|
||||
获取启用的工作流列表
|
||||
"""
|
||||
return Workflow.get_enabled_workflows(self._db)
|
||||
return self._execute_sync_query(
|
||||
lambda session: Workflow.get_enabled_workflows(session)
|
||||
)
|
||||
|
||||
def get_timer_triggered_workflows(self) -> List[Workflow]:
|
||||
"""
|
||||
获取定时触发的工作流列表
|
||||
"""
|
||||
return Workflow.get_timer_triggered_workflows(self._db)
|
||||
return self._execute_sync_query(
|
||||
lambda session: Workflow.get_timer_triggered_workflows(session)
|
||||
)
|
||||
|
||||
def get_event_triggered_workflows(self) -> List[Workflow]:
|
||||
"""
|
||||
获取事件触发的工作流列表
|
||||
"""
|
||||
return Workflow.get_event_triggered_workflows(self._db)
|
||||
return self._execute_sync_query(
|
||||
lambda session: Workflow.get_event_triggered_workflows(session)
|
||||
)
|
||||
|
||||
def get_by_name(self, name: str) -> Workflow:
|
||||
"""
|
||||
按名称获取工作流
|
||||
"""
|
||||
return Workflow.get_by_name(self._db, name)
|
||||
return self._execute_sync_query(
|
||||
lambda session: Workflow.get_by_name(session, name)
|
||||
)
|
||||
|
||||
async def async_get_by_name(self, name: str) -> Optional[Workflow]:
|
||||
"""
|
||||
异步按名称获取工作流
|
||||
"""
|
||||
return await Workflow.async_get_by_name(self._db, name)
|
||||
return await self._execute_async_query(
|
||||
lambda session: Workflow.async_get_by_name(session, name)
|
||||
)
|
||||
|
||||
async def stage_create(self, payload: Mapping[str, Any]) -> Workflow:
|
||||
"""暂存新工作流,不在操作器内提交事务。"""
|
||||
|
||||
Reference in New Issue
Block a user