Fetch notification statistics for last 7 days frpm FactNotificationStatus

This commit is contained in:
Pea Tyczynska
2018-10-30 16:31:57 +00:00
parent f0c61c8f29
commit 9015ffef48
2 changed files with 71 additions and 1 deletions

View File

@@ -8,7 +8,7 @@ from sqlalchemy.types import DateTime
from app import db
from app.models import Notification, NotificationHistory, FactNotificationStatus, KEY_TYPE_TEST
from app.utils import convert_bst_to_utc, get_london_midnight_in_utc
from app.utils import convert_bst_to_utc, get_london_midnight_in_utc, midnight_n_days_ago
def fetch_notification_status_for_day(process_day, service_id=None):
@@ -95,6 +95,24 @@ def fetch_notification_status_for_service_by_month(start_date, end_date, service
).all()
def fetch_notification_status_for_service_for_7_days(service_id):
start_date = midnight_n_days_ago(7)
return db.session.query(
FactNotificationStatus.bst_date,
FactNotificationStatus.notification_type,
FactNotificationStatus.notification_status,
func.sum(FactNotificationStatus.notification_count).label('count')
).filter(
FactNotificationStatus.service_id == service_id,
FactNotificationStatus.bst_date >= start_date,
FactNotificationStatus.key_type != KEY_TYPE_TEST
).group_by(
FactNotificationStatus.bst_date,
FactNotificationStatus.notification_type,
FactNotificationStatus.notification_status,
).all()
def fetch_notification_status_for_service_for_day(bst_day, service_id):
return db.session.query(
# return current month as a datetime so the data has the same shape as the ft_notification_status query