diff --git a/api/src/api/routes/job.py b/api/src/api/routes/job.py index 78c8f5d91bc03107575d1d6e77a2f036948fbc6a..d85b4723ce0fb6c09f792bf72a796d3ad77affc9 100644 --- a/api/src/api/routes/job.py +++ b/api/src/api/routes/job.py @@ -133,22 +133,19 @@ def api_route_get_job_status(): for val in json_request.get_array("job_ids") ] - def _trans(session: SessionDb): - limited_jobs = session.scalars( - Job.select(api_user_ac(), []) - .where(Job.id.in_(job_ids)) - .options(orm.load_only(Job.id, Job.state, Job.run_start_time, Job.run_end_time)) - ).all() - return { - "jobs": { - job.id: { - # TODO This is not really using the serialization API - "state": job.state.value, - "run_start_time": None if job.run_start_time is None else format_standard_datetime(job.run_start_time), - "run_end_time": None if job.run_end_time is None else format_standard_datetime(job.run_end_time), - } - for job in limited_jobs + limited_jobs = database.query_all_and_expunge( + Job.select(api_user_ac(), []) + .where(Job.id.in_(job_ids)) + .options(orm.load_only(Job.id, Job.state, Job.run_start_time, Job.run_end_time)) + ) + return { + "jobs": { + job.id: { + # TODO This is not really using the serialization API + "state": job.state.value, + "run_start_time": None if job.run_start_time is None else format_standard_datetime(job.run_start_time), + "run_end_time": None if job.run_end_time is None else format_standard_datetime(job.run_end_time), } + for job in limited_jobs } - - return database.execute_read_transaction(_trans) + }