TP-12345|experiment enable (#68)

This commit is contained in:
chandresh pancholi
2023-05-05 08:21:54 +05:30
committed by GitHub Enterprise
parent 2b7715a37c
commit c0c3695317
3 changed files with 24 additions and 0 deletions

View File

@@ -149,4 +149,14 @@ public class ExperimentControllerV2 {
log.info("refresh metric request result received for experiment: {}", experimentName);
experimentMetricResultService.refreshMetricResult(experimentName);
}
@PutMapping("/toggle/{experimentId}")
@Timed(value = "experiment.enabled", percentiles = {0.95, 0.99})
public void toggleExperiment(@PathVariable("experimentId") String experimentId,
@RequestHeader(Constants.HEADER_EMAIL_ID) String emailId) {
log.info("experiment state change request received. experiment_id: {}, email_id:{}",
experimentId, emailId);
experimentService.toggleExperiment(experimentId, emailId);
}
}

View File

@@ -59,4 +59,6 @@ public interface ExperimentService {
List<ExperimentAuditTrailDTO> getExperimentAuditTrail(String experimentId);
ExperimentDataDTO getExperimentStatsData(String experimentId);
void toggleExperiment(String experimentId, String emailId);
}

View File

@@ -583,6 +583,18 @@ public class ExperimentServiceImpl implements ExperimentService {
.build();
}
@Override
@Transactional
public void toggleExperiment(String experimentId, String emailId) {
ExperimentEntity experiment = getExperimentEntityFromId(experimentId);
boolean previousState = experiment.getEnabled();
experiment.setEnabled(!previousState);
experimentQuery.save(experiment);
saveAuditTrail(experimentId, String.format("Experiment state changes. from: %s, to: %s", previousState, !previousState), emailId);
}
private List<GraphDTO<Long>> getPopulationGraphForExperiment(ExperimentEntity experiment, int populationGraphDataDaysInterval, List<String> variantNames) {
Optional<ExperimentMetricMappingEntity> primaryMetricMapping = experiment.getExperimentMetricMappings().stream()
.filter(experimentMetricMapping -> ExperimentMetricType.PRIMARY.equals(experimentMetricMapping.getExperimentMetricType()))