mirror of
https://github.com/GSA/notifications-api.git
synced 2026-08-05 06:00:53 -04:00
remove unused notification-statistics endpoints
This commit is contained in:
@@ -66,7 +66,6 @@ def create_app(app_name=None):
|
||||
from app.notifications.rest import notifications as notifications_blueprint
|
||||
from app.invite.rest import invite as invite_blueprint
|
||||
from app.accept_invite.rest import accept_invite
|
||||
from app.notifications_statistics.rest import notifications_statistics as notifications_statistics_blueprint
|
||||
from app.template_statistics.rest import template_statistics as template_statistics_blueprint
|
||||
from app.events.rest import events as events_blueprint
|
||||
from app.provider_details.rest import provider_details as provider_details_blueprint
|
||||
@@ -81,7 +80,7 @@ def create_app(app_name=None):
|
||||
application.register_blueprint(job_blueprint)
|
||||
application.register_blueprint(invite_blueprint)
|
||||
application.register_blueprint(accept_invite, url_prefix='/invite')
|
||||
application.register_blueprint(notifications_statistics_blueprint)
|
||||
|
||||
application.register_blueprint(template_statistics_blueprint)
|
||||
application.register_blueprint(events_blueprint)
|
||||
application.register_blueprint(provider_details_blueprint, url_prefix='/provider-details')
|
||||
|
||||
@@ -1,105 +0,0 @@
|
||||
from datetime import (
|
||||
date,
|
||||
timedelta,
|
||||
datetime
|
||||
)
|
||||
|
||||
from flask import (
|
||||
Blueprint,
|
||||
jsonify,
|
||||
request,
|
||||
current_app
|
||||
)
|
||||
|
||||
from app import DATE_FORMAT
|
||||
|
||||
from app.dao.notifications_dao import (
|
||||
dao_get_notification_statistics_for_service,
|
||||
dao_get_7_day_agg_notification_statistics_for_service,
|
||||
dao_get_notification_statistics_for_service_and_day
|
||||
)
|
||||
from app.schemas import (
|
||||
notifications_statistics_schema,
|
||||
week_aggregate_notification_statistics_schema
|
||||
)
|
||||
|
||||
notifications_statistics = Blueprint(
|
||||
'notifications-statistics',
|
||||
__name__, url_prefix='/service/<service_id>/notifications-statistics'
|
||||
)
|
||||
|
||||
from app.errors import (
|
||||
register_errors,
|
||||
InvalidRequest
|
||||
)
|
||||
|
||||
register_errors(notifications_statistics)
|
||||
|
||||
|
||||
@notifications_statistics.route('', methods=['GET'])
|
||||
def get_all_notification_statistics_for_service(service_id):
|
||||
|
||||
if request.args.get('limit_days'):
|
||||
try:
|
||||
statistics = dao_get_notification_statistics_for_service(
|
||||
service_id=service_id,
|
||||
limit_days=int(request.args['limit_days'])
|
||||
)
|
||||
except ValueError as e:
|
||||
message = '{} is not an integer'.format(request.args['limit_days'])
|
||||
errors = {'limit_days': [message]}
|
||||
raise InvalidRequest(errors, status_code=400)
|
||||
else:
|
||||
statistics = dao_get_notification_statistics_for_service(service_id=service_id)
|
||||
|
||||
data, errors = notifications_statistics_schema.dump(statistics, many=True)
|
||||
return jsonify(data=data)
|
||||
|
||||
|
||||
@notifications_statistics.route('/day/<day>', methods=['GET'])
|
||||
def get_notification_statistics_for_service_for_day(service_id, day):
|
||||
|
||||
try:
|
||||
datetime.strptime(day, DATE_FORMAT)
|
||||
except ValueError:
|
||||
raise InvalidRequest('Invalid date {}'.format(day), status_code=400)
|
||||
|
||||
service_stats = dao_get_notification_statistics_for_service_and_day(
|
||||
service_id,
|
||||
day
|
||||
)
|
||||
|
||||
if not service_stats:
|
||||
message = 'No statistics found for service id: {} on day: {} '.format(service_id, day)
|
||||
errors = {'not found': [message]}
|
||||
raise InvalidRequest(errors, status_code=404)
|
||||
|
||||
data = notifications_statistics_schema.dump(service_stats).data
|
||||
return jsonify(data=data)
|
||||
|
||||
|
||||
@notifications_statistics.route('/seven_day_aggregate')
|
||||
def get_notification_statistics_for_service_seven_day_aggregate(service_id):
|
||||
data = week_aggregate_notification_statistics_schema.load(request.args).data
|
||||
date_from = data['date_from'] if 'date_from' in data else date(date.today().year, 4, 1)
|
||||
week_count = data['week_count'] if 'week_count' in data else 52
|
||||
stats = dao_get_7_day_agg_notification_statistics_for_service(
|
||||
service_id,
|
||||
date_from,
|
||||
week_count).all()
|
||||
json_stats = []
|
||||
for x in range(week_count - 1, -1, -1):
|
||||
week_stats = stats.pop(0) if len(stats) > 0 and stats[0][0] == x else [x, 0, 0, 0, 0, 0, 0]
|
||||
week_start = (date_from + timedelta(days=week_stats[0] * 7))
|
||||
if week_start <= date.today():
|
||||
json_stats.append({
|
||||
'week_start': week_start.strftime('%Y-%m-%d'),
|
||||
'week_end': (date_from + timedelta(days=(week_stats[0] * 7) + 6)).strftime('%Y-%m-%d'),
|
||||
'emails_requested': week_stats[1],
|
||||
'emails_delivered': week_stats[2],
|
||||
'emails_failed': week_stats[3],
|
||||
'sms_requested': week_stats[4],
|
||||
'sms_delivered': week_stats[5],
|
||||
'sms_failed': week_stats[6]
|
||||
})
|
||||
return jsonify(data=json_stats)
|
||||
Reference in New Issue
Block a user