From cd188180ca6f289411fcecbc067c747e488e55f9 Mon Sep 17 00:00:00 2001 From: Anastasia Gradova Date: Thu, 6 Jun 2024 16:37:12 -0600 Subject: [PATCH] Added new endpoint for getting statistics for a service, for a user, by a number of days --- app/service/rest.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/app/service/rest.py b/app/service/rest.py index 117b414df..dafccbbe3 100644 --- a/app/service/rest.py +++ b/app/service/rest.py @@ -243,6 +243,32 @@ def get_service_statistics_for_specific_days(service_id, start, days=1): return stats +@service_blueprint.route("//statistics/user///") +def get_service_notification_statistics_by_day_by_user(service_id, user_id, start, days): + return jsonify( + data=get_service_statistics_for_specific_days_by_user(service_id, user_id, start, int(days)) + ) + + +def get_service_statistics_for_specific_days_by_user(service_id, user_id, start, days=1): + start_date = datetime.strptime(start, "%Y-%m-%d").date() + + if days == 1: + stats = {} + stats[start] = statistics.format_statistics( + dao_fetch_stats_for_service_from_day_for_user(service_id, start_date, user_id) + ) + else: + stats = {} + for d in range(days): + new_date = start_date - timedelta(days=d) + key = new_date.strftime("%Y-%m-%d") + stats[key] = statistics.format_statistics( + dao_fetch_stats_for_service_from_day_for_user(service_id, new_date, user_id) + ) + + return stats + @service_blueprint.route("", methods=["POST"]) def create_service():