Remove NotificationStatistics

NotificationStatistics was added as a spike but didn't work out as expected. This is finally removing all that unused code.
I'll drop the table in the next PR
This commit is contained in:
Rebecca Law
2017-11-01 15:02:50 +00:00
parent ea1b6d1b31
commit f5e79302cd
12 changed files with 5 additions and 399 deletions

View File

@@ -14,7 +14,7 @@ from notifications_utils.recipients import (
InvalidEmailError,
)
from werkzeug.datastructures import MultiDict
from sqlalchemy import (desc, func, or_, and_, asc)
from sqlalchemy import (desc, func, or_, asc)
from sqlalchemy.orm import joinedload
from sqlalchemy.sql.expression import case
from sqlalchemy.sql import functions
@@ -22,13 +22,10 @@ from notifications_utils.international_billing_rates import INTERNATIONAL_BILLIN
from app import db, create_uuid
from app.dao import days_ago
from app.dao.date_util import get_financial_year
from app.models import (
Service,
Notification,
NotificationEmailReplyTo,
NotificationHistory,
NotificationStatistics,
ScheduledNotification,
ServiceEmailReplyTo,
Template,
@@ -53,62 +50,6 @@ from app.dao.dao_utils import transactional
from app.statsd_decorators import statsd
def dao_get_notification_statistics_for_service_and_day(service_id, day):
# only used by stat-updating code in tasks.py
return NotificationStatistics.query.filter_by(
service_id=service_id,
day=day
).order_by(desc(NotificationStatistics.day)).first()
@statsd(namespace="dao")
def dao_get_potential_notification_statistics_for_day(day):
all_services = db.session.query(
Service.id,
NotificationStatistics
).outerjoin(
NotificationStatistics,
and_(
Service.id == NotificationStatistics.service_id,
or_(
NotificationStatistics.day == day,
NotificationStatistics.day == None # noqa
)
)
).order_by(
asc(Service.created_at)
)
notification_statistics = []
for service_notification_stats_pair in all_services:
if service_notification_stats_pair.NotificationStatistics:
notification_statistics.append(
service_notification_stats_pair.NotificationStatistics
)
else:
notification_statistics.append(
create_notification_statistics_dict(
service_notification_stats_pair,
day
)
)
return notification_statistics
def create_notification_statistics_dict(service_id, day):
return {
'id': None,
'emails_requested': 0,
'emails_delivered': 0,
'emails_failed': 0,
'sms_requested': 0,
'sms_delivered': 0,
'sms_failed': 0,
'day': day.isoformat(),
'service': service_id
}
@statsd(namespace="dao")
def dao_get_template_usage(service_id, limit_days=None):
query_filter = []

View File

@@ -1,6 +1,7 @@
from sqlalchemy import func
from app import db
from app.dao.date_util import get_financial_year
from app.models import (
NotificationHistory,
SMS_TYPE,
@@ -8,7 +9,6 @@ from app.models import (
NOTIFICATION_STATUS_TYPES_BILLABLE,
KEY_TYPE_TEST
)
from app.dao.notifications_dao import get_financial_year
def get_fragment_count(service_id, year=None):

View File

@@ -13,7 +13,6 @@ from app.dao.dao_utils import (
from app.dao.date_util import get_financial_year
from app.dao.service_sms_sender_dao import insert_service_sms_sender
from app.models import (
NotificationStatistics,
ProviderStatistics,
VerifyCode,
ApiKey,
@@ -232,7 +231,6 @@ def delete_service_and_all_associated_db_objects(service):
_delete_commit(TemplateRedacted.query.filter(TemplateRedacted.template_id.in_(subq)))
_delete_commit(ServiceSmsSender.query.filter_by(service=service))
_delete_commit(NotificationStatistics.query.filter_by(service=service))
_delete_commit(ProviderStatistics.query.filter_by(service=service))
_delete_commit(InvitedUser.query.filter_by(service=service))
_delete_commit(Permission.query.filter_by(service=service))