diff --git a/CHANGELOG.md b/CHANGELOG.md index 35903fd..46e343e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,7 @@ +# 4.2.1-beta - 20/11/2025 + +- Converts all persona values to strings in segment tracking. # 4.2.0-beta - 4/11/2025 diff --git a/example/lib/Providers/fs_data.dart b/example/lib/Providers/fs_data.dart index 7922b6d..b5f5bc1 100644 --- a/example/lib/Providers/fs_data.dart +++ b/example/lib/Providers/fs_data.dart @@ -70,7 +70,11 @@ class UserData extends ChangeNotifier { "testing_tracking_manager": true, "isQA": true, "fs_is_vip": true, - "condition1": "spécial" + "customer": "spécial", + "condition1": "segment", + "bucketKeyFlutter": "Mercredi", + "numericKeyFlutter": true, + "floatKeyFlutter": 12.5 }; bool _hasConsented = true; bool _isAuthenticated = false; diff --git a/lib/flagship_version.dart b/lib/flagship_version.dart index e1c906e..b1b2cfb 100644 --- a/lib/flagship_version.dart +++ b/lib/flagship_version.dart @@ -1,2 +1,2 @@ /// This file is automatically updated -const FlagshipVersion = "4.2.0-beta"; +const FlagshipVersion = "4.2.1-beta"; diff --git a/lib/hits/segment.dart b/lib/hits/segment.dart index 36d42ab..302cc54 100644 --- a/lib/hits/segment.dart +++ b/lib/hits/segment.dart @@ -10,8 +10,11 @@ class Segment extends BaseHit { @override Map get bodyTrack { var customBody = new Map(); - customBody.addAll({"s": persona, "t": typeOfEvent}); - // Add commun body + // Convert persona values to String + Map personaString = + persona.map((key, value) => MapEntry(key, value.toString())); + customBody.addAll({"s": personaString, "t": typeOfEvent}); + // Add common body customBody.addAll(super.communBodyTrack); return customBody; } diff --git a/lib/visitor/strategy/default_strategy.dart b/lib/visitor/strategy/default_strategy.dart index 3019596..e6b8584 100644 --- a/lib/visitor/strategy/default_strategy.dart +++ b/lib/visitor/strategy/default_strategy.dart @@ -72,12 +72,15 @@ class DefaultStrategy implements IVisitor { Flagship.logger(Level.INFO, " The campaign's flag already activated "); return; } - // When not duplicated - final String? flagJson = - exposedFlag != null ? jsonEncode(exposedFlag) : null; - final String? visitorJson = - exposedVisitor != null ? jsonEncode(exposedVisitor) : null; + String? flagJson; + String? visitorJson; + try { + flagJson = exposedFlag != null ? jsonEncode(exposedFlag) : null; + visitorJson = exposedVisitor != null ? jsonEncode(exposedVisitor) : null; + } catch (e) { + Flagship.logger(Level.ERROR, "Error encoding exposure data: $e"); + } final activateHit = Activate( modification, diff --git a/pubspec.yaml b/pubspec.yaml index b324bfa..dde6d33 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flagship description: Flutter SDK for Flagship Feature management & Experiment platform for modern engineering and product teams -version: 4.2.0-beta +version: 4.2.1-beta homepage: https://flagship.io environment: