Skip to content

Commit 4165d15

Browse files
committed
fix: properly set variable type mismatch as eval details on Cloud Bucketing Client
1 parent b7009fd commit 4165d15

File tree

3 files changed

+14
-4
lines changed

3 files changed

+14
-4
lines changed

src/main/java/com/devcycle/sdk/server/cloud/api/DevCycleCloudClient.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,12 @@ public <T> Variable<T> variable(DevCycleUser user, String key, T defaultValue) {
162162
.defaultValue(defaultValue)
163163
.isDefaulted(true)
164164
.build();
165-
variable.setEval(EvalReason.defaultReason(EvalReason.DefaultReasonDetailsEnum.USER_NOT_TARGETED));
165+
166+
if (exception.getMessage().equals("Variable type mismatch, returning default value")) {
167+
variable.setEval(EvalReason.defaultReason(EvalReason.DefaultReasonDetailsEnum.VARIABLE_TYPE_MISMATCH));
168+
} else {
169+
variable.setEval(EvalReason.defaultReason(EvalReason.DefaultReasonDetailsEnum.USER_NOT_TARGETED));
170+
}
166171
}
167172

168173
evalHooksRunner.executeError(reversedHooks, context, exception);

src/main/java/com/devcycle/sdk/server/common/model/EvalReason.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.devcycle.sdk.server.common.model;
22

33
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4+
import com.fasterxml.jackson.annotation.JsonInclude;
45
import com.fasterxml.jackson.annotation.JsonProperty;
56

67
import io.swagger.v3.oas.annotations.media.Schema;
@@ -23,6 +24,7 @@ public class EvalReason {
2324

2425
@Schema(description = "Target ID")
2526
@JsonProperty("target_id")
27+
@JsonInclude(value=JsonInclude.Include.NON_EMPTY, content=JsonInclude.Include.NON_NULL)
2628
private String targetId;
2729

2830
private EvalReason(String reason, String details) {
@@ -41,7 +43,7 @@ public String getReason() {
4143
public enum DefaultReasonDetailsEnum {
4244
MISSING_CONFIG("Missing Config"),
4345
USER_NOT_TARGETED("User Not Targeted"),
44-
VARIABLE_TYPE_MISMATCH("Type Mismatch"),
46+
VARIABLE_TYPE_MISMATCH("Variable Type Mismatch"),
4547
ERROR("Error");
4648

4749
private final String value;

src/main/java/com/devcycle/sdk/server/local/managers/EventQueueManager.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,13 @@ public void queueAggregateEvent(DevCycleEvent event, BucketedUserConfig bucketed
116116
return;
117117
}
118118

119+
String eventString = OBJECT_MAPPER.writeValueAsString(event);
120+
119121
if (bucketedConfig != null) {
120-
this.localBucketing.queueAggregateEvent(this.sdkKey, OBJECT_MAPPER.writeValueAsString(event), OBJECT_MAPPER.writeValueAsString(bucketedConfig.variableVariationMap));
122+
String variableVariationMapString = OBJECT_MAPPER.writeValueAsString(bucketedConfig.variableVariationMap);
123+
this.localBucketing.queueAggregateEvent(this.sdkKey, eventString, variableVariationMapString);
121124
} else {
122-
this.localBucketing.queueAggregateEvent(this.sdkKey, OBJECT_MAPPER.writeValueAsString(event), "{}");
125+
this.localBucketing.queueAggregateEvent(this.sdkKey, eventString, "{}");
123126
}
124127
}
125128

0 commit comments

Comments
 (0)