|
18 | 18 | import com.flagsmith.models.FeatureMetadata; |
19 | 19 | import com.flagsmith.models.Flag; |
20 | 20 | import com.flagsmith.models.SegmentMetadata; |
| 21 | +import com.flagsmith.models.TraitModel; |
21 | 22 | import com.flagsmith.models.environments.EnvironmentModel; |
22 | 23 | import com.flagsmith.models.features.FeatureModel; |
23 | 24 | import com.flagsmith.models.features.FeatureSegmentModel; |
|
28 | 29 | import com.flagsmith.models.segments.SegmentConditionModel; |
29 | 30 | import com.flagsmith.models.segments.SegmentModel; |
30 | 31 | import com.flagsmith.models.segments.SegmentRuleModel; |
| 32 | +import com.flagsmith.utils.ModelUtils; |
31 | 33 | import java.util.ArrayList; |
32 | 34 | import java.util.HashMap; |
33 | 35 | import java.util.List; |
@@ -79,22 +81,16 @@ public static EvaluationContext mapContextAndIdentityDataToContext( |
79 | 81 | // Create identity context |
80 | 82 | IdentityContext identityContext = new IdentityContext() |
81 | 83 | .withIdentifier(identifier) |
82 | | - .withKey(context.getEnvironment().getKey() + "_" + identifier) |
83 | | - .withTraits(new Traits()); |
| 84 | + .withKey(context.getEnvironment().getKey() + "_" + identifier); |
84 | 85 |
|
85 | 86 | // Map traits if provided |
86 | 87 | if (traits != null && !traits.isEmpty()) { |
87 | | - for (Map.Entry<String, Object> entry : traits.entrySet()) { |
88 | | - Object traitValue = entry.getValue(); |
89 | | - // Handle TraitConfig-like objects (maps with "value" key) |
90 | | - if (traitValue instanceof Map) { |
91 | | - Map<?, ?> traitMap = (Map<?, ?>) traitValue; |
92 | | - if (traitMap.containsKey("value")) { |
93 | | - traitValue = traitMap.get("value"); |
94 | | - } |
95 | | - } |
96 | | - identityContext.getTraits().setAdditionalProperty(entry.getKey(), traitValue); |
| 88 | + Traits identityTraits = new Traits(); |
| 89 | + for (TraitModel traitModel : ModelUtils.getTraitModelsFromTraitMap(traits)) { |
| 90 | + identityTraits.setAdditionalProperty( |
| 91 | + traitModel.getTraitKey(), traitModel.getTraitValue()); |
97 | 92 | } |
| 93 | + identityContext.setTraits(identityTraits); |
98 | 94 | } |
99 | 95 |
|
100 | 96 | // Create new evaluation context with identity |
|
0 commit comments