From 0ad050043cfbee24ad1dc97f3392ba215365f954 Mon Sep 17 00:00:00 2001 From: Leo Hemsted Date: Thu, 19 May 2016 16:42:21 +0100 Subject: [PATCH] new /notification/statistics endpoint --- app/dao/notifications_dao.py | 6 ++++++ app/notifications/rest.py | 14 ++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/app/dao/notifications_dao.py b/app/dao/notifications_dao.py index 48c393c26..863191973 100644 --- a/app/dao/notifications_dao.py +++ b/app/dao/notifications_dao.py @@ -51,6 +51,12 @@ def dao_get_notification_statistics_for_service_and_day(service_id, day): ).order_by(desc(NotificationStatistics.day)).first() +def dao_get_notification_statistics_for_day(day): + return NotificationStatistics.query.filter_by( + day=day + ).all() + + def dao_get_7_day_agg_notification_statistics_for_service(service_id, date_from, week_count=52): diff --git a/app/notifications/rest.py b/app/notifications/rest.py index 8c5e509ae..ac1884245 100644 --- a/app/notifications/rest.py +++ b/app/notifications/rest.py @@ -1,4 +1,4 @@ -from datetime import datetime +from datetime import datetime, date import statsd import itertools from flask import ( @@ -27,7 +27,8 @@ from app.schemas import ( email_notification_schema, sms_template_notification_schema, notification_status_schema, - notifications_filter_schema + notifications_filter_schema, + notifications_statistics_schema ) from app.celery.tasks import send_sms, send_email @@ -384,3 +385,12 @@ def send_notification(notification_type): statsd_client.incr('notifications.api.{}'.format(notification_type)) return jsonify(data={"notification": {"id": notification_id}}), 201 + + +@notifications.route('/notifications/statistics') +def get_notification_statistics_for_today(): + today = date.today() + statistics = notifications_dao.dao_get_notification_statistics_for_day(day=today) + + data, errors = notifications_statistics_schema.dump(statistics, many=True) + return jsonify(data=data, date=today.isoformat()), 200