From 3977ae863c975f7eb4d6ca4a3975a0af8504b0a8 Mon Sep 17 00:00:00 2001 From: eliasyishak <42216813+eliasyishak@users.noreply.github.com> Date: Wed, 27 Mar 2024 13:53:20 -0400 Subject: [PATCH] `fromLabel` static method renaming --- pkgs/unified_analytics/lib/src/enums.dart | 22 +++++-------------- pkgs/unified_analytics/lib/src/event.dart | 4 ++-- .../lib/src/survey_handler.dart | 11 ++++++---- 3 files changed, 15 insertions(+), 22 deletions(-) diff --git a/pkgs/unified_analytics/lib/src/enums.dart b/pkgs/unified_analytics/lib/src/enums.dart index 33d0bbe7..cb282903 100644 --- a/pkgs/unified_analytics/lib/src/enums.dart +++ b/pkgs/unified_analytics/lib/src/enums.dart @@ -2,6 +2,8 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. +import 'package:collection/collection.dart'; + /// The valid dash tool labels stored in the [DashTool] enum. List get validDashTools => DashTool.values.map((e) => e.label).toList()..sort(); @@ -156,13 +158,8 @@ enum DashEvent { /// This takes in the string label for a given [DashEvent] and returns the /// enum for that string label. - static DashEvent? getDashEventByLabel(String label) { - for (final event in DashEvent.values) { - if (event.label == label) return event; - } - - return null; - } + static DashEvent? fromLabel(String label) => + DashEvent.values.firstWhereOrNull((e) => e.label == label); } /// Officially-supported clients of this package as logical @@ -209,15 +206,8 @@ enum DashTool { /// This takes in the string label for a given [DashTool] and returns the /// enum for that string label. - static DashTool getDashToolByLabel(String label) { - for (final tool in DashTool.values) { - if (tool.label == label) return tool; - } - - throw Exception('The tool $label from the survey metadata file is not ' - 'a valid DashTool enum value\n' - 'Valid labels for dash tools: ${validDashTools.join(', ')}'); - } + static DashTool? fromLabel(String label) => + DashTool.values.firstWhereOrNull((e) => e.label == label); } /// Enumerate options for platforms supported. diff --git a/pkgs/unified_analytics/lib/src/event.dart b/pkgs/unified_analytics/lib/src/event.dart index e7fb006d..9d201ec1 100644 --- a/pkgs/unified_analytics/lib/src/event.dart +++ b/pkgs/unified_analytics/lib/src/event.dart @@ -771,9 +771,9 @@ final class Event { case { 'eventName': final String eventName, 'eventData': final Map eventData, - } when DashEvent.getDashEventByLabel(eventName) != null) { + } when DashEvent.fromLabel(eventName) != null) { return Event._( - eventName: DashEvent.getDashEventByLabel(eventName)!, + eventName: DashEvent.fromLabel(eventName)!, eventData: eventData, ); } diff --git a/pkgs/unified_analytics/lib/src/survey_handler.dart b/pkgs/unified_analytics/lib/src/survey_handler.dart index cc533475..9271977b 100644 --- a/pkgs/unified_analytics/lib/src/survey_handler.dart +++ b/pkgs/unified_analytics/lib/src/survey_handler.dart @@ -5,6 +5,7 @@ import 'dart:convert'; import 'package:clock/clock.dart'; +import 'package:collection/collection.dart'; import 'package:file/file.dart'; import 'package:http/http.dart' as http; @@ -134,10 +135,12 @@ class Survey { samplingRate = json['samplingRate'] is String ? double.parse(json['samplingRate'] as String) : json['samplingRate'] as double, - excludeDashToolList = - (json['excludeDashTools'] as List).map((e) { - return DashTool.getDashToolByLabel(e as String); - }).toList(), + excludeDashToolList = (json['excludeDashTools'] as List) + .map((e) { + return DashTool.fromLabel(e as String); + }) + .whereType() + .toList(), conditionList = (json['conditions'] as List).map((e) { return Condition.fromJson(e as Map); }).toList(),