new /notification/statistics endpoint

This commit is contained in:
Leo Hemsted
2016-05-20 09:48:06 +01:00
parent 297f8aac6e
commit 0ad050043c
2 changed files with 18 additions and 2 deletions
+6
View File
@@ -51,6 +51,12 @@ def dao_get_notification_statistics_for_service_and_day(service_id, day):
).order_by(desc(NotificationStatistics.day)).first() ).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, def dao_get_7_day_agg_notification_statistics_for_service(service_id,
date_from, date_from,
week_count=52): week_count=52):
+12 -2
View File
@@ -1,4 +1,4 @@
from datetime import datetime from datetime import datetime, date
import statsd import statsd
import itertools import itertools
from flask import ( from flask import (
@@ -27,7 +27,8 @@ from app.schemas import (
email_notification_schema, email_notification_schema,
sms_template_notification_schema, sms_template_notification_schema,
notification_status_schema, notification_status_schema,
notifications_filter_schema notifications_filter_schema,
notifications_statistics_schema
) )
from app.celery.tasks import send_sms, send_email 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)) statsd_client.incr('notifications.api.{}'.format(notification_type))
return jsonify(data={"notification": {"id": notification_id}}), 201 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