def get_platform_stats(): if request.args: validate(request.args, platform_stats_request) # If start and end date are not set, we are expecting today's stats. today = str(datetime.utcnow().date()) start_date = datetime.strptime(request.args.get('start_date', today), '%Y-%m-%d').date() end_date = datetime.strptime(request.args.get('end_date', today), '%Y-%m-%d').date() data = fetch_notification_status_totals_for_all_services(start_date=start_date, end_date=end_date) stats = format_admin_stats(data) return jsonify(stats)
def test_format_admin_stats_counts_non_test_key_notifications_correctly(): rows = [ NewStatsRow('email', 'technical-failure', 'normal', 1), NewStatsRow('email', 'created', 'team', 3), NewStatsRow('sms', 'temporary-failure', 'normal', 6), NewStatsRow('sms', 'sent', 'normal', 2), NewStatsRow('letter', 'pending-virus-check', 'normal', 1), ] stats_dict = format_admin_stats(rows) assert stats_dict['email']['total'] == 4 assert stats_dict['email']['failures']['technical-failure'] == 1 assert stats_dict['sms']['total'] == 8 assert stats_dict['sms']['failures']['permanent-failure'] == 0 assert stats_dict['letter']['total'] == 1
def test_format_admin_stats_only_includes_test_key_notifications_in_test_key_section( ): rows = [ NewStatsRow('email', 'technical-failure', 'test', 3), NewStatsRow('sms', 'permanent-failure', 'test', 4), NewStatsRow('letter', 'virus-scan-failed', 'test', 5), ] stats_dict = format_admin_stats(rows) assert stats_dict['email']['total'] == 0 assert stats_dict['email']['failures']['technical-failure'] == 0 assert stats_dict['email']['test-key'] == 3 assert stats_dict['sms']['total'] == 0 assert stats_dict['sms']['failures']['permanent-failure'] == 0 assert stats_dict['sms']['test-key'] == 4 assert stats_dict['letter']['total'] == 0 assert stats_dict['letter']['failures']['virus-scan-failed'] == 0 assert stats_dict['letter']['test-key'] == 5
def get_platform_stats(): if request.args: validate(request.args, platform_stats_request) include_from_test_key = request.args.get('include_from_test_key', 'True') != 'False' # If start and end date are not set, we are expecting today's stats. today = str(convert_utc_to_aet(datetime.utcnow()).date()) start_date = datetime.strptime(request.args.get('start_date', today), '%Y-%m-%d').date() end_date = datetime.strptime(request.args.get('end_date', today), '%Y-%m-%d').date() end_date = datetime.strptime(request.args.get('end_date', today), '%Y-%m-%d').date() data = fetch_aggregate_stats_by_date_range_for_all_services( start_date=start_date, end_date=end_date, include_from_test_key=include_from_test_key) stats = format_admin_stats(data) return jsonify(stats)