updating custom and phoneNumber strategy

This commit is contained in:
chandresh-pancholi
2022-12-22 03:34:20 +05:30
parent b344051b34
commit 8d618c9654
2 changed files with 10 additions and 8 deletions

View File

@@ -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)

View File

@@ -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)