try fixing pagination

This commit is contained in:
Kenneth Kehl
2024-11-18 11:36:20 -08:00
parent 92bf9c518e
commit 25d2901b86
4 changed files with 35 additions and 12 deletions

View File

@@ -44,13 +44,19 @@ def get_model_api_keys(service_id, id=None):
.one()
)
seven_days_ago = utc_now() - timedelta(days=7)
return ApiKey.query.filter(
or_(
ApiKey.expiry_date == None, # noqa
func.date(ApiKey.expiry_date) > seven_days_ago, # noqa
),
ApiKey.service_id == service_id,
).all()
return (
db.session.execute(
select(ApiKey).where(
or_(
ApiKey.expiry_date == None, # noqa
func.date(ApiKey.expiry_date) > seven_days_ago, # noqa
),
ApiKey.service_id == service_id,
)
)
.scalars()
.all()
)
def get_unsigned_secrets(service_id):

View File

@@ -59,4 +59,4 @@ def get_processing_time_percentage_for_date_range(start_date, end_date):
.order_by(FactProcessingTime.local_date)
)
return query.all()
return db.session.execute(query).scalars().all()

View File

@@ -53,9 +53,19 @@ def dao_get_paginated_inbound_sms_for_service_for_public_api(
filters.append(InboundSms.created_at < older_than_created_at)
# As part of the move to sqlalchemy 2.0, we do this manual pagination
query = db.session.query(InboundSms).filter(*filters)
paginated_items = query.order_by(desc(InboundSms.created_at)).limit(page_size).all()
return paginated_items
stmt = (
select(InboundSms)
.filter(*filters)
.order_by(desc(InboundSms.created_at))
.limit(page_size)
)
paginated_items = db.session.execute(stmt).scalars().all()
page = 1 # ?
offset = (page - 1) * page_size
paginated_results = paginated_items[offset : offset + page_size]
pagination = Pagination(paginated_results, page, page_size, len(paginated_results))
return pagination
def dao_count_inbound_sms_for_service(service_id, limit_days):

View File

@@ -2,7 +2,9 @@ import uuid
from flask import current_app
from notifications_python_client.authentication import create_jwt_token
from sqlalchemy import select
from app import db
from app.dao.api_key_dao import save_model_api_key
from app.dao.services_dao import dao_fetch_service_by_id
from app.enums import KeyType
@@ -11,7 +13,12 @@ from app.models import ApiKey
def create_service_authorization_header(service_id, key_type=KeyType.NORMAL):
client_id = str(service_id)
secrets = ApiKey.query.filter_by(service_id=service_id, key_type=key_type).all()
secrets = (
db.session.execute(select(ApiKey))
.filter_by(service_id=service_id, key_type=key_type)
.scalars()
.all()
)
if secrets:
secret = secrets[0].secret