add the ability to query jobs based on processed started time rather than created_at

This commit is contained in:
Beverly Nguyen
2025-08-07 18:35:58 -07:00
parent a1155faab9
commit a38c642ecd
2 changed files with 12 additions and 1 deletions

View File

@@ -53,6 +53,7 @@ def dao_get_jobs_by_service_id(
service_id,
*,
limit_days=None,
use_processing_time=False,
page=1,
page_size=50,
statuses=None,
@@ -63,7 +64,12 @@ def dao_get_jobs_by_service_id(
Job.original_file_name != current_app.config["ONE_OFF_MESSAGE_FILENAME"],
]
if limit_days is not None:
query_filter.append(Job.created_at >= midnight_n_days_ago(limit_days))
if use_processing_time:
query_filter.append(
func.coalesce(Job.processing_started, Job.created_at) >= midnight_n_days_ago(limit_days)
)
else:
query_filter.append(Job.created_at >= midnight_n_days_ago(limit_days))
if statuses is not None and statuses != [""]:
query_filter.append(Job.job_status.in_(statuses))

View File

@@ -220,6 +220,8 @@ def get_jobs_by_service(service_id):
else:
limit_days = None
use_processing_time = request.args.get("use_processing_time", "false").lower() == "true"
valid_statuses = set(JobStatus)
statuses_arg = request.args.get("statuses", "")
if statuses_arg == "":
@@ -236,6 +238,7 @@ def get_jobs_by_service(service_id):
**get_paginated_jobs(
service_id,
limit_days=limit_days,
use_processing_time=use_processing_time,
statuses=statuses,
page=int(request.args.get("page", 1)),
)
@@ -325,12 +328,14 @@ def get_paginated_jobs(
service_id,
*,
limit_days,
use_processing_time,
statuses,
page,
):
pagination = dao_get_jobs_by_service_id(
service_id,
limit_days=limit_days,
use_processing_time=use_processing_time,
page=page,
page_size=current_app.config["PAGE_SIZE"],
statuses=statuses,