mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-15 01:32:20 -05:00
try fixing pagination
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user