23
23
// TODO - Flush events when network connection has become available.
24
24
25
25
// --- 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" ;
28
30
29
31
// Default interval and timeout values (in s) if not set by users
30
32
const NSInteger OPTLYEventDispatcherDefaultDispatchIntervalTime_s = 0 ;
@@ -207,6 +209,16 @@ - (void)dispatchNewEvent:(nonnull NSDictionary *)params
207
209
}];
208
210
}
209
211
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
+
210
222
- (void )dispatchEvent : (nonnull NSDictionary *)event
211
223
backoffRetry : (BOOL )backoffRetry
212
224
eventType : (OPTLYDataStoreEventType)eventType
@@ -228,9 +240,10 @@ - (void)dispatchEvent:(nonnull NSDictionary *)event
228
240
[self .pendingDispatchEvents addObject: event];
229
241
}
230
242
231
- NSURL *url = [self URLForEvent: eventType];
243
+ NSURL *url = [self isOldEvent: event] ? [ self oldURLForEvent: eventType] : [ self URLForEvent: eventType];
232
244
233
- NSDictionary *eventToSend = event[@" json" ] == nil ? event : event[@" json" ];
245
+ NSDictionary *eventToSend = [self isSavedEvent: event] ? event[@" json" ] : event;
246
+
234
247
__weak typeof (self) weakSelf = self;
235
248
[self .networkService dispatchEvent: eventToSend
236
249
backoffRetry: backoffRetry
@@ -465,14 +478,29 @@ - (NSInteger)numberOfEvents
465
478
return numberOfImpressionEventsSaved + numberOfConversionEventsSaved;
466
479
}
467
480
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
+
468
496
- (NSURL *)URLForEvent : (OPTLYDataStoreEventType)eventType {
469
497
NSURL *url = nil ;
470
498
switch (eventType) {
471
499
case OPTLYDataStoreEventTypeImpression:
472
- url = [NSURL URLWithString: OPTLYEventDispatcherImpressionEventURL ];
500
+ url = [NSURL URLWithString: OPTLYEventDispatcherEventsURL ];
473
501
break ;
474
502
case OPTLYDataStoreEventTypeConversion:
475
- url = [NSURL URLWithString: OPTLYEventDispatcherConversionEventURL ];
503
+ url = [NSURL URLWithString: OPTLYEventDispatcherEventsURL ];
476
504
break ;
477
505
default :
478
506
break ;
0 commit comments