TP-26660 | optional primary metric (#66)
This commit is contained in:
committed by
GitHub Enterprise
parent
2fc1c5f158
commit
065aec2ad0
@@ -19,6 +19,7 @@ import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
@@ -69,7 +70,9 @@ public class ExperimentMapper {
|
||||
.experimentName(experimentEntity.getName())
|
||||
.description(experimentEntity.getDescription())
|
||||
.strategies(Objects.nonNull(experimentEntity.getStrategies())
|
||||
? jacksonUtils.stringToListObject(experimentEntity.getStrategies(), ActivationStrategy.class)
|
||||
? addRolloutToSegmentsWithNoRollouts(
|
||||
jacksonUtils.stringToListObject(experimentEntity.getStrategies(), ActivationStrategy.class)
|
||||
)
|
||||
: null)
|
||||
.variants(Objects.nonNull(experimentEntity.getVariants())
|
||||
? jacksonUtils.stringToListObject(experimentEntity.getVariants(), VariantDefinition.class)
|
||||
@@ -84,6 +87,20 @@ public class ExperimentMapper {
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
private List<ActivationStrategy> addRolloutToSegmentsWithNoRollouts(List<ActivationStrategy> strategies) {
|
||||
return strategies.stream()
|
||||
.map(strategy -> {
|
||||
Map<String, String> parameters = strategy.getParameters();
|
||||
if (parameters.containsKey("segment") && !parameters.containsKey("rollout")) {
|
||||
parameters.put("rollout", "100");
|
||||
}
|
||||
strategy.setParameters(parameters);
|
||||
return strategy;
|
||||
})
|
||||
.toList();
|
||||
}
|
||||
|
||||
public ExperimentInfoDTO mapExperimentInfoEntityToExperimentInfoDTO(ExperimentInfoEntity experimentInfo) {
|
||||
if (Objects.isNull(experimentInfo)) {
|
||||
return null;
|
||||
|
||||
@@ -142,12 +142,14 @@ public class ExperimentServiceImpl implements ExperimentService {
|
||||
.team(team.orElse(null))
|
||||
.build();
|
||||
experimentInfoQuery.save(experimentInfo);
|
||||
ExperimentMetricMappingEntity primaryMetricMapping = ExperimentMetricMappingEntity.builder()
|
||||
.experiment(experiment)
|
||||
.metric(primaryMetric.get())
|
||||
.experimentMetricType(ExperimentMetricType.PRIMARY)
|
||||
.build();
|
||||
experimentMetricMappingQuery.save(primaryMetricMapping);
|
||||
if (primaryMetric.isPresent()) {
|
||||
ExperimentMetricMappingEntity primaryMetricMapping = ExperimentMetricMappingEntity.builder()
|
||||
.experiment(experiment)
|
||||
.metric(primaryMetric.get())
|
||||
.experimentMetricType(ExperimentMetricType.PRIMARY)
|
||||
.build();
|
||||
experimentMetricMappingQuery.save(primaryMetricMapping);
|
||||
}
|
||||
if (secondaryMetric.isPresent()) {
|
||||
ExperimentMetricMappingEntity secondaryMetricMapping = ExperimentMetricMappingEntity.builder()
|
||||
.experiment(experiment)
|
||||
|
||||
Reference in New Issue
Block a user