mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-01 07:35:34 -05:00
make dao_get_jobs_by_service_id paginated
it can return a pretty long list, especially when we run lots of smoke tests, so make it accept pagination parameters, and return a pagination object
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
from datetime import date, timedelta, datetime
|
||||
from sqlalchemy import desc, asc, cast, Date as sql_date
|
||||
from datetime import datetime
|
||||
|
||||
from sqlalchemy import func, desc, asc, cast, Date as sql_date
|
||||
|
||||
from app import db
|
||||
from app.dao import days_ago
|
||||
from app.models import Job, NotificationHistory, JOB_STATUS_SCHEDULED
|
||||
from app.statsd_decorators import statsd
|
||||
from sqlalchemy import func, asc
|
||||
|
||||
|
||||
@statsd(namespace="dao")
|
||||
@@ -26,11 +27,14 @@ def dao_get_job_by_service_id_and_job_id(service_id, job_id):
|
||||
return Job.query.filter_by(service_id=service_id, id=job_id).one()
|
||||
|
||||
|
||||
def dao_get_jobs_by_service_id(service_id, limit_days=None):
|
||||
def dao_get_jobs_by_service_id(service_id, limit_days=None, page=1, page_size=50):
|
||||
query_filter = [Job.service_id == service_id]
|
||||
if limit_days is not None:
|
||||
query_filter.append(cast(Job.created_at, sql_date) >= days_ago(limit_days))
|
||||
return Job.query.filter(*query_filter).order_by(desc(Job.created_at)).all()
|
||||
return Job.query \
|
||||
.filter(*query_filter) \
|
||||
.order_by(desc(Job.created_at)) \
|
||||
.paginate(page=page, per_page=page_size)
|
||||
|
||||
|
||||
def dao_get_job_by_id(job_id):
|
||||
|
||||
Reference in New Issue
Block a user