updating custom and phoneNumber strategy
This commit is contained in:
@@ -16,6 +16,8 @@ public class CustomParameterWithIdStrategy implements Strategy {
|
||||
|
||||
private static final String SEGMENT = "segment";
|
||||
|
||||
private static final String CUSTOM_PARAMETER_NAME = "customParameter";
|
||||
|
||||
private final HttpExperimentFetcher experimentFetcher;
|
||||
|
||||
public CustomParameterWithIdStrategy(HttpExperimentFetcher experimentFetcher) {
|
||||
@@ -43,19 +45,19 @@ public class CustomParameterWithIdStrategy implements Strategy {
|
||||
}
|
||||
|
||||
private boolean customWithIdSegmentCheck(Map<String, String> parameters, LitmusContext litmusContext) {
|
||||
var deviceId = litmusContext.getDeviceId().orElse(null);
|
||||
var customParameterId = litmusContext.getProperties().get(CUSTOM_PARAMETER_NAME);
|
||||
var segmentName = parameters.get(SEGMENT);
|
||||
var result = experimentFetcher.segmentIdExists(segmentName, deviceId);
|
||||
var result = experimentFetcher.segmentIdExists(segmentName, customParameterId);
|
||||
|
||||
return result.getData() != null && (Boolean) result.getData();
|
||||
}
|
||||
|
||||
private boolean segmentCheckWithRollout(Map<String, String> parameters, LitmusContext litmusContext) {
|
||||
var deviceId = litmusContext.getDeviceId().orElse(null);
|
||||
var customParameterId = litmusContext.getProperties().get(CUSTOM_PARAMETER_NAME);
|
||||
var percentage = StrategyUtils.getPercentage(parameters.get(PERCENTAGE));
|
||||
var groupId = parameters.getOrDefault(GROUP_ID, "");
|
||||
|
||||
var norm = StrategyUtils.getNormalizedNumber(deviceId, groupId);
|
||||
var norm = StrategyUtils.getNormalizedNumber(customParameterId, groupId);
|
||||
|
||||
return Optional.of(customWithIdSegmentCheck(parameters, litmusContext))
|
||||
.map(r -> r && percentage > 0 && norm <= percentage)
|
||||
|
||||
@@ -41,19 +41,19 @@ public class PhoneNumberStrategy implements Strategy {
|
||||
}
|
||||
|
||||
private boolean phoneNumberSegmentCheck(Map<String, String> parameters, LitmusContext litmusContext) {
|
||||
var userId = litmusContext.getUserId().orElse(null);
|
||||
var phoneNumber = litmusContext.getPhoneNumber().orElse(null);
|
||||
var segmentName = parameters.get(SEGMENT);
|
||||
var result = experimentFetcher.segmentIdExists(segmentName, userId);
|
||||
var result = experimentFetcher.segmentIdExists(segmentName, phoneNumber);
|
||||
|
||||
return result.getData() != null && (Boolean) result.getData();
|
||||
}
|
||||
|
||||
private boolean segmentCheckWithRollout(Map<String, String> parameters, LitmusContext litmusContext) {
|
||||
var userId = litmusContext.getUserId().orElse(null);
|
||||
var phoneNumber = litmusContext.getPhoneNumber().orElse(null);
|
||||
var percentage = StrategyUtils.getPercentage(parameters.get(PERCENTAGE));
|
||||
var groupId = parameters.getOrDefault(GROUP_ID, "");
|
||||
|
||||
var norm = StrategyUtils.getNormalizedNumber(userId, groupId);
|
||||
var norm = StrategyUtils.getNormalizedNumber(phoneNumber, groupId);
|
||||
|
||||
return Optional.of(phoneNumberSegmentCheck(parameters, litmusContext))
|
||||
.map(r -> r && percentage > 0 && norm <= percentage)
|
||||
|
||||
Reference in New Issue
Block a user