Skip to content

Commit

Permalink
Merge branch 'master' into issue-26900-pass-field-variables-binary-fi…
Browse files Browse the repository at this point in the history
…eld-monaco
  • Loading branch information
oidacra authored Feb 1, 2024
2 parents e31e996 + 392004e commit 01a634a
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ public void run() {
}

private Optional<Response<String>> sendEvent(final CircuitBreakerUrlBuilder builder, final EventPayload payload) {

final CircuitBreakerUrl postLog = builder
.setRawData(payload.toString())
.build();
Expand Down
41 changes: 30 additions & 11 deletions dotCMS/src/main/java/com/dotcms/jitsu/EventLogWebInterceptor.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,14 @@

import com.dotcms.analytics.helper.AnalyticsHelper;
import com.dotcms.analytics.experience.metric.MetricsAPI;
import com.dotcms.experiments.business.ExperimentsAPI;
import com.dotcms.experiments.model.Experiment;
import com.dotcms.filters.interceptor.Result;
import com.dotcms.filters.interceptor.WebInterceptor;
import com.dotcms.metrics.MetricsSenderSubmitter;
import com.dotcms.util.JsonUtil;
import com.dotmarketing.beans.Host;
import com.dotmarketing.business.APILocator;
import com.dotmarketing.business.web.WebAPILocator;
import com.dotmarketing.exception.DotDataException;
import com.dotmarketing.exception.DotRuntimeException;
Expand All @@ -21,8 +24,9 @@
import com.liferay.portal.SystemException;
import io.vavr.Lazy;
import io.vavr.control.Try;
import java.util.List;
import java.util.Map;

import java.util.*;

import org.apache.commons.io.IOUtils;

import java.io.BufferedReader;
Expand Down Expand Up @@ -52,6 +56,7 @@ public class EventLogWebInterceptor implements WebInterceptor {

private final MetricsSenderSubmitter submitter;
private final Lazy<String> jitsuLib;
private final ExperimentsAPI experimentsAPI = APILocator.getExperimentsAPI();

public EventLogWebInterceptor() {
submitter = new MetricsSenderSubmitter();
Expand Down Expand Up @@ -125,16 +130,17 @@ public void doPost(final HttpServletRequest request,
WebAPILocator.getPersonalizationWebAPI().getContainerPersonalization(request));
//eventPayload.put("clusterId", ClusterFactory.getClusterId());

for (final Map<String, Object> experiment : experiments) {
eventPayload.addExperiment(experiment);
}

try {
final Host host = WebAPILocator.getHostWebAPI().getCurrentHost(request);
this.submitter.logEvent(
MetricsAPI.createAnalyticsAppPayload(
AnalyticsHelper.get().appFromHost(host),
eventPayload));
addRunningExperimentAsPayload(experiments, eventPayload);

if (!eventPayload.isEmpty()) {
final Host host = WebAPILocator.getHostWebAPI().getCurrentHost(request);

this.submitter.logEvent(
MetricsAPI.createAnalyticsAppPayload(
AnalyticsHelper.get().appFromHost(host),
eventPayload));
}
} catch (DotDataException | DotSecurityException | PortalException | SystemException e) {
Logger.error(this, "Error resolving current host", e);
} catch(Exception e) {
Expand All @@ -143,6 +149,19 @@ public void doPost(final HttpServletRequest request,
}
}

private void addRunningExperimentAsPayload(List<Map<String, Object>> experiments, EventsPayload eventPayload) throws DotDataException {
final Collection<String> runningExperimentIds = experimentsAPI.getRunningExperiments().stream()
.map(Experiment::getIdentifier)
.collect(Collectors.toSet());


for (final Map<String, Object> experiment : experiments) {
if (runningExperimentIds.contains(experiment.get("experiment"))) {
eventPayload.addExperiment(experiment);
}
}
}

public void doOptions(final HttpServletRequest request, final HttpServletResponse response) {
response.setHeader(CONTENT_LENGTH, "0");
response.setStatus(200);
Expand Down
4 changes: 4 additions & 0 deletions dotCMS/src/main/java/com/dotcms/jitsu/EventsPayload.java
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@ public Iterable<EventPayload> payloads() {
return eventPayloads;
}

public boolean isEmpty() {
return shortExperiments.isEmpty();
}

public static class EventPayload {
private JSONObject jsonObject;

Expand Down

0 comments on commit 01a634a

Please sign in to comment.