mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-22 16:31:15 -05:00
Merge pull request #583 from alphagov/stats-db-updates
Stats db updates
This commit is contained in:
@@ -31,8 +31,10 @@ from app.clients import (
|
||||
STATISTICS_REQUESTED
|
||||
)
|
||||
from app.dao.dao_utils import transactional
|
||||
from app.statsd_decorators import statsd
|
||||
|
||||
|
||||
@statsd(namespace="dao")
|
||||
def dao_get_notification_statistics_for_service(service_id, limit_days=None):
|
||||
query_filter = [NotificationStatistics.service_id == service_id]
|
||||
if limit_days is not None:
|
||||
@@ -44,6 +46,7 @@ def dao_get_notification_statistics_for_service(service_id, limit_days=None):
|
||||
).all()
|
||||
|
||||
|
||||
@statsd(namespace="dao")
|
||||
def dao_get_notification_statistics_for_service_and_day(service_id, day):
|
||||
return NotificationStatistics.query.filter_by(
|
||||
service_id=service_id,
|
||||
@@ -51,10 +54,12 @@ def dao_get_notification_statistics_for_service_and_day(service_id, day):
|
||||
).order_by(desc(NotificationStatistics.day)).first()
|
||||
|
||||
|
||||
@statsd(namespace="dao")
|
||||
def dao_get_notification_statistics_for_day(day):
|
||||
return NotificationStatistics.query.filter_by(day=day).all()
|
||||
|
||||
|
||||
@statsd(namespace="dao")
|
||||
def dao_get_potential_notification_statistics_for_day(day):
|
||||
all_services = db.session.query(
|
||||
Service.id,
|
||||
@@ -102,6 +107,7 @@ def create_notification_statistics_dict(service_id, day):
|
||||
}
|
||||
|
||||
|
||||
@statsd(namespace="dao")
|
||||
def dao_get_7_day_agg_notification_statistics_for_service(service_id,
|
||||
date_from,
|
||||
week_count=52):
|
||||
@@ -129,6 +135,7 @@ def dao_get_7_day_agg_notification_statistics_for_service(service_id,
|
||||
)
|
||||
|
||||
|
||||
@statsd(namespace="dao")
|
||||
def dao_get_template_statistics_for_service(service_id, limit_days=None):
|
||||
query_filter = [TemplateStatistics.service_id == service_id]
|
||||
if limit_days is not None:
|
||||
@@ -137,6 +144,7 @@ def dao_get_template_statistics_for_service(service_id, limit_days=None):
|
||||
desc(TemplateStatistics.updated_at)).all()
|
||||
|
||||
|
||||
@statsd(namespace="dao")
|
||||
def dao_get_template_statistics_for_template(template_id):
|
||||
return TemplateStatistics.query.filter(
|
||||
TemplateStatistics.template_id == template_id
|
||||
@@ -145,6 +153,7 @@ def dao_get_template_statistics_for_template(template_id):
|
||||
).all()
|
||||
|
||||
|
||||
@statsd(namespace="dao")
|
||||
@transactional
|
||||
def dao_create_notification(notification, notification_type):
|
||||
if notification.job_id:
|
||||
@@ -252,6 +261,7 @@ def _update_notification_status(notification, status, notification_statistics_st
|
||||
return True
|
||||
|
||||
|
||||
@statsd(namespace="dao")
|
||||
@transactional
|
||||
def update_notification_status_by_id(notification_id, status, notification_statistics_status=None):
|
||||
notification = Notification.query.with_lockmode("update").filter(
|
||||
@@ -270,6 +280,7 @@ def update_notification_status_by_id(notification_id, status, notification_stati
|
||||
)
|
||||
|
||||
|
||||
@statsd(namespace="dao")
|
||||
@transactional
|
||||
def update_notification_status_by_reference(reference, status, notification_statistics_status):
|
||||
notification = Notification.query.filter(Notification.reference == reference,
|
||||
@@ -286,6 +297,7 @@ def update_notification_status_by_reference(reference, status, notification_stat
|
||||
)
|
||||
|
||||
|
||||
@statsd(namespace="dao")
|
||||
def dao_update_notification(notification):
|
||||
notification.updated_at = datetime.utcnow()
|
||||
notification_history = NotificationHistory.query.get(notification.id)
|
||||
@@ -294,6 +306,7 @@ def dao_update_notification(notification):
|
||||
db.session.commit()
|
||||
|
||||
|
||||
@statsd(namespace="dao")
|
||||
@transactional
|
||||
def update_provider_stats(
|
||||
id_,
|
||||
@@ -320,10 +333,12 @@ def update_provider_stats(
|
||||
db.session.add(provider_stats)
|
||||
|
||||
|
||||
@statsd(namespace="dao")
|
||||
def get_notification_for_job(service_id, job_id, notification_id):
|
||||
return Notification.query.filter_by(service_id=service_id, job_id=job_id, id=notification_id).one()
|
||||
|
||||
|
||||
@statsd(namespace="dao")
|
||||
def get_notifications_for_job(service_id, job_id, filter_dict=None, page=1, page_size=None):
|
||||
if page_size is None:
|
||||
page_size = current_app.config['PAGE_SIZE']
|
||||
@@ -335,6 +350,7 @@ def get_notifications_for_job(service_id, job_id, filter_dict=None, page=1, page
|
||||
)
|
||||
|
||||
|
||||
@statsd(namespace="dao")
|
||||
def get_notification(service_id, notification_id, key_type=None):
|
||||
filter_dict = {'service_id': service_id, 'id': notification_id}
|
||||
if key_type:
|
||||
@@ -343,6 +359,7 @@ def get_notification(service_id, notification_id, key_type=None):
|
||||
return Notification.query.filter_by(**filter_dict).one()
|
||||
|
||||
|
||||
@statsd(namespace="dao")
|
||||
def get_notification_by_id(notification_id):
|
||||
return Notification.query.filter_by(id=notification_id).first()
|
||||
|
||||
@@ -351,6 +368,7 @@ def get_notifications(filter_dict=None):
|
||||
return _filter_query(Notification.query, filter_dict=filter_dict)
|
||||
|
||||
|
||||
@statsd(namespace="dao")
|
||||
def get_notifications_for_service(service_id,
|
||||
filter_dict=None,
|
||||
page=1,
|
||||
@@ -390,6 +408,7 @@ def _filter_query(query, filter_dict=None):
|
||||
return query
|
||||
|
||||
|
||||
@statsd(namespace="dao")
|
||||
def delete_notifications_created_more_than_a_week_ago(status):
|
||||
seven_days_ago = date.today() - timedelta(days=7)
|
||||
deleted = db.session.query(Notification).filter(
|
||||
|
||||
Reference in New Issue
Block a user