mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-29 11:51:48 -05:00
We were using two different queries to filter template stats to the past 7 days, plus today. Since we’re storing both as short dates, we can now use the same query for both. 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 -------|---------|-----------|----------|--------|----------|--------|------- Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday | Monday So if we are on Monday, the stats should include today, plus everything back to last Monday. Previously the template stats query was only going back to the Tuesday. This should mean the numbers on the dashboard always line up.
38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
from flask import (
|
|
Blueprint,
|
|
jsonify,
|
|
request
|
|
)
|
|
|
|
from app.dao.notifications_dao import dao_get_notification_statistics_for_service
|
|
from app.schemas import notifications_statistics_schema
|
|
|
|
notifications_statistics = Blueprint(
|
|
'notifications-statistics',
|
|
__name__, url_prefix='/service/<service_id>/notifications-statistics'
|
|
)
|
|
|
|
from app.errors import register_errors
|
|
|
|
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:
|
|
error = '{} is not an integer'.format(request.args['limit_days'])
|
|
current_app.logger.error(error)
|
|
return jsonify(result="error", message={'limit_days': [error]}), 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)
|