Revert "Purge notifications for configured days of retention"

This commit is contained in:
Rebecca Law
2018-08-03 14:35:36 +01:00
committed by GitHub
parent 691f24f94e
commit 019c6a4e3a
11 changed files with 148 additions and 337 deletions

View File

@@ -29,7 +29,6 @@ from app.dao.service_data_retention_dao import (
fetch_service_data_retention_by_id,
insert_service_data_retention,
update_service_data_retention,
fetch_service_data_retention_by_notification_type
)
from app.dao.service_sms_sender_dao import (
archive_sms_sender,
@@ -166,9 +165,7 @@ def get_service_by_id(service_id):
@service_blueprint.route('/<uuid:service_id>/statistics')
def get_service_notification_statistics(service_id):
return jsonify(data=get_service_statistics(service_id,
request.args.get('today_only') == 'True',
request.args.get('limit_days', 7)))
return jsonify(data=get_service_statistics(service_id, request.args.get('today_only') == 'True'))
@service_blueprint.route('', methods=['POST'])
@@ -327,20 +324,15 @@ def get_service_history(service_id):
@service_blueprint.route('/<uuid:service_id>/notifications', methods=['GET'])
def get_all_notifications_for_service(service_id):
data = notifications_filter_schema.load(request.args).data
notification_type = data.get('template_type')[0] if data.get('template_type') else None
if data.get('to'):
notification_type = data.get('template_type')[0] if data.get('template_type') else None
return search_for_notification_by_to_field(service_id=service_id,
search_term=data['to'],
statuses=data.get('status'),
notification_type=notification_type)
page = data['page'] if 'page' in data else 1
page_size = data['page_size'] if 'page_size' in data else current_app.config.get('PAGE_SIZE')
days_of_retention = None
if notification_type:
days_of_retention = fetch_service_data_retention_by_notification_type(
service_id=service_id,
notification_type=notification_type).days_of_retention
limit_days = days_of_retention if days_of_retention else data.get('limit_days')
limit_days = data.get('limit_days')
include_jobs = data.get('include_jobs', True)
include_from_test_key = data.get('include_from_test_key', False)
include_one_off = data.get('include_one_off', True)
@@ -427,17 +419,15 @@ def get_monthly_notification_stats(service_id):
def get_detailed_service(service_id, today_only=False):
service = dao_fetch_service_by_id(service_id)
service.statistics = get_service_statistics(service_id, today_only, limit_days=7)
service.statistics = get_service_statistics(service_id, today_only)
return detailed_service_schema.dump(service).data
def get_service_statistics(service_id, today_only, limit_days):
if today_only:
stats = dao_fetch_todays_stats_for_service(service_id)
return statistics.format_statistics(stats)
if limit_days:
stats = dao_fetch_stats_for_service(service_id=service_id, limit_days=int(limit_days))
return statistics.format_statistics(stats)
def get_service_statistics(service_id, today_only):
# today_only flag is used by the send page to work out if the service will exceed their daily usage by sending a job
stats_fn = dao_fetch_todays_stats_for_service if today_only else dao_fetch_stats_for_service
stats = stats_fn(service_id)
return statistics.format_statistics(stats)
def get_detailed_services(start_date, end_date, only_active=False, include_from_test_key=True):
@@ -756,12 +746,6 @@ def is_service_name_unique():
return jsonify(result=result), 200
@service_blueprint.route('/<uuid:service_id>/data-retention/notification-type/<notification_type>', methods=['GET'])
def get_data_retention_for_service_notification_type(service_id, notification_type):
data_retention = fetch_service_data_retention_by_notification_type(service_id, notification_type)
return jsonify(data_retention.serialize()), 200
@service_blueprint.route('/<uuid:service_id>/data-retention', methods=['GET'])
def get_data_retention_for_service(service_id):
data_retention_list = fetch_service_data_retention(service_id)