2323// TODO - Flush events when network connection has become available.
2424
2525// --- Event URLs ----
26- NSString * const OPTLYEventDispatcherImpressionEventURL = @" https://logx.optimizely.com/log/decision" ;
27- NSString * const OPTLYEventDispatcherConversionEventURL = @" https://logx.optimizely.com/log/event" ;
26+ NSString * const OPTLYEventDispatcherEventsURL = @" https://logx.optimizely.com/v1/events" ;
27+
28+ NSString * const oldOPTLYEventDispatcherImpressionEventURL = @" https://logx.optimizely.com/log/decision" ;
29+ NSString * const oldOPTLYEventDispatcherConversionEventURL = @" https://logx.optimizely.com/log/event" ;
2830
2931// Default interval and timeout values (in s) if not set by users
3032const NSInteger OPTLYEventDispatcherDefaultDispatchIntervalTime_s = 0 ;
@@ -207,6 +209,16 @@ - (void)dispatchNewEvent:(nonnull NSDictionary *)params
207209 }];
208210}
209211
212+ // A saved event has entityId and json in its dictionary so that it can be deleted by entityId
213+ - (bool )isSavedEvent : (nonnull NSDictionary *)event {
214+ return event[@" json" ] != nil ;
215+ }
216+ // It is an old single point event if it contains clientEngine. So, send it to the appropriate endpoint.
217+ // This may not be necessary but just in case there are some old events in the queue.
218+ - (bool )isOldEvent : (nonnull NSDictionary *)event {
219+ return [self isSavedEvent: event] && event[@" json" ][@" clientEngine" ] != nil ;
220+ }
221+
210222- (void )dispatchEvent : (nonnull NSDictionary *)event
211223 backoffRetry : (BOOL )backoffRetry
212224 eventType : (OPTLYDataStoreEventType)eventType
@@ -228,9 +240,10 @@ - (void)dispatchEvent:(nonnull NSDictionary *)event
228240 [self .pendingDispatchEvents addObject: event];
229241 }
230242
231- NSURL *url = [self URLForEvent: eventType];
243+ NSURL *url = [self isOldEvent: event] ? [ self oldURLForEvent: eventType] : [ self URLForEvent: eventType];
232244
233- NSDictionary *eventToSend = event[@" json" ] == nil ? event : event[@" json" ];
245+ NSDictionary *eventToSend = [self isSavedEvent: event] ? event[@" json" ] : event;
246+
234247 __weak typeof (self) weakSelf = self;
235248 [self .networkService dispatchEvent: eventToSend
236249 backoffRetry: backoffRetry
@@ -465,14 +478,29 @@ - (NSInteger)numberOfEvents
465478 return numberOfImpressionEventsSaved + numberOfConversionEventsSaved;
466479}
467480
481+ - (NSURL *)oldURLForEvent : (OPTLYDataStoreEventType)eventType {
482+ NSURL *url = nil ;
483+ switch (eventType) {
484+ case OPTLYDataStoreEventTypeImpression:
485+ url = [NSURL URLWithString: oldOPTLYEventDispatcherImpressionEventURL];
486+ break ;
487+ case OPTLYDataStoreEventTypeConversion:
488+ url = [NSURL URLWithString: oldOPTLYEventDispatcherConversionEventURL];
489+ break ;
490+ default :
491+ break ;
492+ }
493+ return url;
494+ }
495+
468496- (NSURL *)URLForEvent : (OPTLYDataStoreEventType)eventType {
469497 NSURL *url = nil ;
470498 switch (eventType) {
471499 case OPTLYDataStoreEventTypeImpression:
472- url = [NSURL URLWithString: OPTLYEventDispatcherImpressionEventURL ];
500+ url = [NSURL URLWithString: OPTLYEventDispatcherEventsURL ];
473501 break ;
474502 case OPTLYDataStoreEventTypeConversion:
475- url = [NSURL URLWithString: OPTLYEventDispatcherConversionEventURL ];
503+ url = [NSURL URLWithString: OPTLYEventDispatcherEventsURL ];
476504 break ;
477505 default :
478506 break ;
0 commit comments