private String getBucketChangedMessage(BucketChangeEvent buckEvent) {
ST template = new ST(BUCKET_CHANGE);
Map<String, String> variables = new HashMap<>();
Bucket buck = buckEvent.getBucket();
ExperimentBase exp = buckEvent.getExperiment();
put(variables, EXPERIMENT_LABEL, exp.getLabel());
put(variables, BUCKET_NAME, buck.getLabel().toString());
put(variables, APPLICATION_NAME, String.valueOf(exp.getApplicationName()));
put(variables, USER_NAME, getUserRepresentation(buckEvent.getUser()));
put(variables, FIELD_NAME, buckEvent.getPropertyName());
if (buckEvent.getPropertyName() != null && "allocation".equalsIgnoreCase(buckEvent.getPropertyName())) {
put(variables, FIELD_BEFORE, String.valueOf(((double) Math.round(Double.parseDouble(buckEvent.getBefore()) * 10000d) / 10000d) * 100).concat("%"));
put(variables, FIELD_AFTER, String.valueOf(((double) Math.round(Double.parseDouble(buckEvent.getAfter()) * 10000d) / 10000d) * 100).concat("%"));
} else {
put(variables, FIELD_BEFORE, buckEvent.getBefore());
put(variables, FIELD_AFTER, buckEvent.getAfter());
}
return replaceVariablesInTemplate(variables, template);
}