refactor(api_workflow_node_execution_repository): Refactors workflow run query for clarity

Signed-off-by: -LAN- <laipz8200@outlook.com>
pull/22581/head
-LAN- 11 months ago
parent 83efc16c3c
commit 9f1e998b8b
No known key found for this signature in database
GPG Key ID: 6BA0D108DED011FF

@ -25,7 +25,7 @@ from datetime import datetime
from typing import Optional, cast from typing import Optional, cast
from sqlalchemy import delete, select from sqlalchemy import delete, select
from sqlalchemy.orm import sessionmaker from sqlalchemy.orm import Session, sessionmaker
from libs.infinite_scroll_pagination import InfiniteScrollPagination from libs.infinite_scroll_pagination import InfiniteScrollPagination
from models.workflow import WorkflowRun from models.workflow import WorkflowRun
@ -45,7 +45,7 @@ class DifyAPISQLAlchemyWorkflowRunRepository:
session_maker: SQLAlchemy sessionmaker instance for database connections session_maker: SQLAlchemy sessionmaker instance for database connections
""" """
def __init__(self, session_maker: sessionmaker) -> None: def __init__(self, session_maker: sessionmaker[Session]) -> None:
""" """
Initialize the repository with a sessionmaker. Initialize the repository with a sessionmaker.
@ -86,15 +86,11 @@ class DifyAPISQLAlchemyWorkflowRunRepository:
raise ValueError("Last workflow run not exists") raise ValueError("Last workflow run not exists")
# Get records created before the last run's timestamp # Get records created before the last run's timestamp
workflow_runs = session.scalars( base_stmt = base_stmt.where(
base_stmt.where(
WorkflowRun.created_at < last_workflow_run.created_at, WorkflowRun.created_at < last_workflow_run.created_at,
WorkflowRun.id != last_workflow_run.id, WorkflowRun.id != last_workflow_run.id,
) )
.order_by(WorkflowRun.created_at.desc())
.limit(limit)
).all()
else:
# First page - get most recent records # First page - get most recent records
workflow_runs = session.scalars(base_stmt.order_by(WorkflowRun.created_at.desc()).limit(limit)).all() workflow_runs = session.scalars(base_stmt.order_by(WorkflowRun.created_at.desc()).limit(limit)).all()

Loading…
Cancel
Save