Skip to content

Commit 8cb5290

Browse files
author
Vignesh Raja
authored
Merge pull request #5 from optimizely/vignesh/change-dispatchEvent-signature
Change signature of dispatchEvent to take in LogEvent object rather than url and request parameters
2 parents 45c775e + 9ad34b8 commit 8cb5290

File tree

10 files changed

+447
-406
lines changed

10 files changed

+447
-406
lines changed

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

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@
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;
3335
import com.optimizely.ab.internal.ProjectValidationUtils;
3436

3537
import org.slf4j.Logger;
@@ -161,12 +163,12 @@ private Optimizely(@Nonnull ProjectConfig projectConfig,
161163
return null;
162164
}
163165

164-
String endpointUrl = eventBuilder.getEndpointUrl(projectConfig.getProjectId());
165-
Map<String, String> impressionParams = eventBuilder.createImpressionParams(projectConfig, experiment,
166-
variation, userId, attributes);
166+
LogEvent impressionEvent =
167+
eventBuilder.createImpressionEvent(projectConfig, experiment, variation, userId, attributes);
167168
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);
169+
logger.debug("Dispatching impression event to URL {} with params {}.", impressionEvent.getEndpointUrl(),
170+
impressionEvent.getRequestParams());
171+
eventHandler.dispatchEvent(impressionEvent);
170172

171173
return variation;
172174
}
@@ -216,27 +218,27 @@ private void track(@Nonnull String eventName,
216218
attributes = filterAttributes(currentConfig, attributes);
217219

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

231-
if (conversionParams == null) {
232+
if (conversionEvent == null) {
232233
logger.info("There are no valid experiments for event \"{}\" to track.", eventName);
233234
logger.info("Not tracking event \"{}\" for user \"{}\".", eventName, userId);
234235
return;
235236
}
236237

237238
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);
239+
logger.debug("Dispatching conversion event to URL {} with params {}.", conversionEvent.getEndpointUrl(),
240+
conversionEvent.getRequestParams());
241+
eventHandler.dispatchEvent(conversionEvent);
240242
}
241243

242244
//======== getVariation calls ========//
@@ -474,7 +476,7 @@ public Optimizely build() {
474476
}
475477

476478
if (eventBuilder == null) {
477-
eventBuilder = new EventBuilder();
479+
eventBuilder = new EventBuilderV1();
478480
}
479481

480482
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)