Skip to content

Commit 73e6e2c

Browse files
author
Vignesh Raja
committed
Change signature of dispatchEvent to take in LogEvent object rather than url and request parameters
1 parent 45c775e commit 73e6e2c

File tree

10 files changed

+448
-406
lines changed

10 files changed

+448
-406
lines changed

core-api/src/main/java/com/optimizely/ab/Optimizely.java

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,10 @@
2929
import com.optimizely.ab.error.NoOpErrorHandler;
3030
import com.optimizely.ab.error.RaiseExceptionErrorHandler;
3131
import com.optimizely.ab.event.EventHandler;
32+
import com.optimizely.ab.event.LogEvent;
3233
import com.optimizely.ab.event.internal.EventBuilder;
34+
import com.optimizely.ab.event.internal.EventBuilderV1;
35+
import com.optimizely.ab.event.internal.EventBuilderV2;
3336
import com.optimizely.ab.internal.ProjectValidationUtils;
3437

3538
import org.slf4j.Logger;
@@ -161,12 +164,12 @@ private Optimizely(@Nonnull ProjectConfig projectConfig,
161164
return null;
162165
}
163166

164-
String endpointUrl = eventBuilder.getEndpointUrl(projectConfig.getProjectId());
165-
Map<String, String> impressionParams = eventBuilder.createImpressionParams(projectConfig, experiment,
166-
variation, userId, attributes);
167+
LogEvent impressionEvent =
168+
eventBuilder.createImpressionEvent(projectConfig, experiment, variation, userId, attributes);
167169
logger.info("Activating user \"{}\" in experiment \"{}\".", userId, experiment.getKey());
168-
logger.debug("Dispatching impression event to URL {} with params {}.", endpointUrl, impressionParams);
169-
eventHandler.dispatchEvent(endpointUrl, impressionParams);
170+
logger.debug("Dispatching impression event to URL {} with params {}.", impressionEvent.getEndpointUrl(),
171+
impressionEvent.getRequestParams());
172+
eventHandler.dispatchEvent(impressionEvent);
170173

171174
return variation;
172175
}
@@ -216,27 +219,27 @@ private void track(@Nonnull String eventName,
216219
attributes = filterAttributes(currentConfig, attributes);
217220

218221
// create the conversion event request parameters, then dispatch
219-
String endpointUrl = eventBuilder.getEndpointUrl(currentConfig.getProjectId());
220-
Map<String, String> conversionParams;
222+
LogEvent conversionEvent;
221223
if (eventValue == null) {
222-
conversionParams = eventBuilder.createConversionParams(currentConfig, bucketer, userId,
223-
eventType.getId(), eventType.getKey(),
224-
attributes);
224+
conversionEvent = eventBuilder.createConversionEvent(currentConfig, bucketer, userId,
225+
eventType.getId(), eventType.getKey(),
226+
attributes);
225227
} else {
226-
conversionParams = eventBuilder.createConversionParams(currentConfig, bucketer, userId,
227-
eventType.getId(), eventType.getKey(), attributes,
228-
eventValue);
228+
conversionEvent = eventBuilder.createConversionEvent(currentConfig, bucketer, userId,
229+
eventType.getId(), eventType.getKey(), attributes,
230+
eventValue);
229231
}
230232

231-
if (conversionParams == null) {
233+
if (conversionEvent == null) {
232234
logger.info("There are no valid experiments for event \"{}\" to track.", eventName);
233235
logger.info("Not tracking event \"{}\" for user \"{}\".", eventName, userId);
234236
return;
235237
}
236238

237239
logger.info("Tracking event \"{}\" for user \"{}\".", eventName, userId);
238-
logger.debug("Dispatching conversion event to URL {} with params {}.", endpointUrl, conversionParams);
239-
eventHandler.dispatchEvent(endpointUrl, conversionParams);
240+
logger.debug("Dispatching conversion event to URL {} with params {}.", conversionEvent.getEndpointUrl(),
241+
conversionEvent.getRequestParams());
242+
eventHandler.dispatchEvent(conversionEvent);
240243
}
241244

242245
//======== getVariation calls ========//
@@ -474,7 +477,7 @@ public Optimizely build() {
474477
}
475478

476479
if (eventBuilder == null) {
477-
eventBuilder = new EventBuilder();
480+
eventBuilder = new EventBuilderV1();
478481
}
479482

480483
if (errorHandler == null) {

core-api/src/main/java/com/optimizely/ab/event/EventHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,5 @@
2323
*/
2424
public interface EventHandler {
2525

26-
void dispatchEvent(String url, Map<String, String> params);
26+
void dispatchEvent(LogEvent logEvent);
2727
}

core-api/src/main/java/com/optimizely/ab/event/NoopEventHandler.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ public class NoopEventHandler implements EventHandler {
2929
private static final Logger logger = LoggerFactory.getLogger(NoopEventHandler.class);
3030

3131
@Override
32-
public void dispatchEvent(String url, Map<String, String> params) {
33-
logger.debug("Called dispatchEvent with URL: {} and params: {}", url, params);
32+
public void dispatchEvent(LogEvent logEvent) {
33+
logger.debug("Called dispatchEvent with URL: {} and params: {}", logEvent.getEndpointUrl(),
34+
logEvent.getRequestParams());
3435
}
3536
}

0 commit comments

Comments
 (0)