mirror of
https://github.com/GSA/notifications-api.git
synced 2026-08-11 09:27:56 -04:00
Merge pull request #1784 from alphagov/optimize-todays-services-query
Optimise query for platform-admin/live-services and trial-services
This commit is contained in:
@@ -333,6 +333,9 @@ def dao_fetch_monthly_historical_stats_for_service(service_id, year):
|
||||
|
||||
@statsd(namespace='dao')
|
||||
def dao_fetch_todays_stats_for_all_services(include_from_test_key=True, only_active=True):
|
||||
today = date.today()
|
||||
start_date = get_london_midnight_in_utc(today)
|
||||
end_date = get_london_midnight_in_utc(today + timedelta(days=1))
|
||||
|
||||
subquery = db.session.query(
|
||||
Notification.notification_type,
|
||||
@@ -340,7 +343,8 @@ def dao_fetch_todays_stats_for_all_services(include_from_test_key=True, only_act
|
||||
Notification.service_id,
|
||||
func.count(Notification.id).label('count')
|
||||
).filter(
|
||||
func.date(Notification.created_at) == date.today(),
|
||||
Notification.created_at >= start_date,
|
||||
Notification.created_at < end_date
|
||||
).group_by(
|
||||
Notification.notification_type,
|
||||
Notification.status,
|
||||
|
||||
@@ -1635,6 +1635,7 @@ def test_get_detailed_services_only_includes_todays_notifications(notify_db, not
|
||||
create_sample_notification(notify_db, notify_db_session, created_at=datetime(2015, 10, 9, 23, 59))
|
||||
create_sample_notification(notify_db, notify_db_session, created_at=datetime(2015, 10, 10, 0, 0))
|
||||
create_sample_notification(notify_db, notify_db_session, created_at=datetime(2015, 10, 10, 12, 0))
|
||||
create_sample_notification(notify_db, notify_db_session, created_at=datetime(2015, 10, 10, 23, 0))
|
||||
|
||||
with freeze_time('2015-10-10T12:00:00'):
|
||||
data = get_detailed_services(start_date=datetime.utcnow().date(), end_date=datetime.utcnow().date())
|
||||
@@ -1643,7 +1644,7 @@ def test_get_detailed_services_only_includes_todays_notifications(notify_db, not
|
||||
assert len(data) == 1
|
||||
assert data[0]['statistics'] == {
|
||||
EMAIL_TYPE: {'delivered': 0, 'failed': 0, 'requested': 0},
|
||||
SMS_TYPE: {'delivered': 0, 'failed': 0, 'requested': 2},
|
||||
SMS_TYPE: {'delivered': 0, 'failed': 0, 'requested': 3},
|
||||
LETTER_TYPE: {'delivered': 0, 'failed': 0, 'requested': 0}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user