affise-attribution-lib 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +549 -0
  3. package/affise-attribution-native.podspec +37 -0
  4. package/android/build.gradle +87 -0
  5. package/android/gradle.properties +5 -0
  6. package/android/libs/attribution-release.aar +0 -0
  7. package/android/libs/oaid_sdk_1.0.26.aar +0 -0
  8. package/android/src/main/AndroidManifest.xml +4 -0
  9. package/android/src/main/java/com/affise/attribution/react/AffiseAttributionNativeModule.kt +147 -0
  10. package/android/src/main/java/com/affise/attribution/react/AffiseAttributionNativePackage.kt +17 -0
  11. package/android/src/main/java/com/affise/attribution/react/ext/AffiseInitPropertiesExt.kt +29 -0
  12. package/android/src/main/java/com/affise/attribution/react/ext/AutoCatchingTypeExt.kt +15 -0
  13. package/android/src/main/java/com/affise/attribution/react/ext/JSONObjectExt.kt +15 -0
  14. package/android/src/main/java/com/affise/attribution/react/ext/PredefinedParametersExt.kt +82 -0
  15. package/android/src/main/java/com/affise/attribution/react/ext/TouchTypeExt.kt +12 -0
  16. package/android/src/main/java/com/affise/attribution/react/factories/AffiseBaseEvensFactory.kt +97 -0
  17. package/android/src/main/java/com/affise/attribution/react/factories/AffiseEvensFactory.kt +781 -0
  18. package/android/src/main/java/com/affise/attribution/react/factories/AffiseSubtypeEventsFactory.kt +266 -0
  19. package/ios/AffiseAttributionNative-Bridging-Header.h +3 -0
  20. package/ios/AffiseAttributionNative.m +90 -0
  21. package/ios/AffiseAttributionNative.swift +148 -0
  22. package/ios/AffiseAttributionNative.xcodeproj/project.pbxproj +305 -0
  23. package/ios/extensions/AffiseInitPropertiesExt.swift +29 -0
  24. package/ios/extensions/PredefinedParametersExt.swift +83 -0
  25. package/ios/extensions/TouchTypeExt.swift +13 -0
  26. package/ios/factories/AffiseBaseEvensFactory.swift +110 -0
  27. package/ios/factories/AffiseEvensFactory.swift +782 -0
  28. package/ios/factories/AffiseSubtypeEventsFactory.swift +261 -0
  29. package/ios/log/Log.swift +19 -0
  30. package/ios/log/RCTSwiftLog.h +16 -0
  31. package/ios/log/RCTSwiftLog.m +32 -0
  32. package/package.json +162 -0
  33. package/src/AffiseInitProperties.ts +32 -0
  34. package/src/Export.ts +73 -0
  35. package/src/events/AutoCatchingType.ts +9 -0
  36. package/src/events/PredefinedParameters.ts +75 -0
  37. package/src/events/TouchType.ts +5 -0
  38. package/src/events/base/AffiseEvent.ts +60 -0
  39. package/src/events/base/NativeEvent.ts +9 -0
  40. package/src/events/custom/CustomId01Event.ts +21 -0
  41. package/src/events/custom/CustomId02Event.ts +21 -0
  42. package/src/events/custom/CustomId03Event.ts +21 -0
  43. package/src/events/custom/CustomId04Event.ts +21 -0
  44. package/src/events/custom/CustomId05Event.ts +21 -0
  45. package/src/events/custom/CustomId06Event.ts +21 -0
  46. package/src/events/custom/CustomId07Event.ts +21 -0
  47. package/src/events/custom/CustomId08Event.ts +21 -0
  48. package/src/events/custom/CustomId09Event.ts +21 -0
  49. package/src/events/custom/CustomId10Event.ts +21 -0
  50. package/src/events/predefined/AchieveLevelEvent.ts +14 -0
  51. package/src/events/predefined/AddPaymentInfoEvent.ts +14 -0
  52. package/src/events/predefined/AddToCartEvent.ts +14 -0
  53. package/src/events/predefined/AddToWishlistEvent.ts +14 -0
  54. package/src/events/predefined/ClickAdvEvent.ts +14 -0
  55. package/src/events/predefined/CompleteRegistrationEvent.ts +14 -0
  56. package/src/events/predefined/CompleteStreamEvent.ts +14 -0
  57. package/src/events/predefined/CompleteTrialEvent.ts +14 -0
  58. package/src/events/predefined/CompleteTutorialEvent.ts +14 -0
  59. package/src/events/predefined/ContentItemsViewEvent.ts +13 -0
  60. package/src/events/predefined/DeepLinkedEvent.ts +13 -0
  61. package/src/events/predefined/InitiatePurchaseEvent.ts +14 -0
  62. package/src/events/predefined/InitiateStreamEvent.ts +14 -0
  63. package/src/events/predefined/InviteEvent.ts +14 -0
  64. package/src/events/predefined/LastAttributedTouchEvent.ts +15 -0
  65. package/src/events/predefined/ListViewEvent.ts +13 -0
  66. package/src/events/predefined/LoginEvent.ts +14 -0
  67. package/src/events/predefined/OpenedFromPushNotificationEvent.ts +13 -0
  68. package/src/events/predefined/PurchaseEvent.ts +14 -0
  69. package/src/events/predefined/RateEvent.ts +14 -0
  70. package/src/events/predefined/ReEngageEvent.ts +13 -0
  71. package/src/events/predefined/ReserveEvent.ts +14 -0
  72. package/src/events/predefined/SearchEvent.ts +14 -0
  73. package/src/events/predefined/ShareEvent.ts +14 -0
  74. package/src/events/predefined/SpendCreditsEvent.ts +14 -0
  75. package/src/events/predefined/StartRegistrationEvent.ts +14 -0
  76. package/src/events/predefined/StartTrialEvent.ts +14 -0
  77. package/src/events/predefined/StartTutorialEvent.ts +14 -0
  78. package/src/events/predefined/SubscribeEvent.ts +14 -0
  79. package/src/events/predefined/TravelBookingEvent.ts +13 -0
  80. package/src/events/predefined/UnlockAchievementEvent.ts +14 -0
  81. package/src/events/predefined/UnsubscribeEvent.ts +14 -0
  82. package/src/events/predefined/UpdateEvent.ts +13 -0
  83. package/src/events/predefined/ViewAdvEvent.ts +14 -0
  84. package/src/events/predefined/ViewCartEvent.ts +13 -0
  85. package/src/events/predefined/ViewItemEvent.ts +13 -0
  86. package/src/events/predefined/ViewItemsEvent.ts +13 -0
  87. package/src/events/subscription/BaseSubscriptionEvent.ts +32 -0
  88. package/src/events/subscription/ConvertedOfferEvent.ts +13 -0
  89. package/src/events/subscription/ConvertedOfferFromRetryEvent.ts +14 -0
  90. package/src/events/subscription/ConvertedTrialEvent.ts +13 -0
  91. package/src/events/subscription/ConvertedTrialFromRetryEvent.ts +13 -0
  92. package/src/events/subscription/FailedOfferFromRetryEvent.ts +13 -0
  93. package/src/events/subscription/FailedOfferiseEvent.ts +13 -0
  94. package/src/events/subscription/FailedSubscriptionEvent.ts +13 -0
  95. package/src/events/subscription/FailedSubscriptionFromRetryEvent.ts +13 -0
  96. package/src/events/subscription/FailedTrialEvent.ts +13 -0
  97. package/src/events/subscription/FailedTrialFromRetryEvent.ts +13 -0
  98. package/src/events/subscription/InitialOfferEvent.ts +13 -0
  99. package/src/events/subscription/InitialSubscriptionEvent.ts +13 -0
  100. package/src/events/subscription/InitialTrialEvent.ts +13 -0
  101. package/src/events/subscription/OfferInRetryEvent.ts +13 -0
  102. package/src/events/subscription/ReactivatedSubscriptionEvent.ts +13 -0
  103. package/src/events/subscription/RenewedSubscriptionEvent.ts +13 -0
  104. package/src/events/subscription/RenewedSubscriptionFromRetryEvent.ts +13 -0
  105. package/src/events/subscription/SubscriptionInRetryEvent.ts +13 -0
  106. package/src/events/subscription/SubscriptionParameters.ts +36 -0
  107. package/src/events/subscription/TrialInRetryEvent.ts +13 -0
  108. package/src/index.tsx +172 -0
@@ -0,0 +1,781 @@
1
+ package com.affise.attribution.react.factories
2
+
3
+ import com.affise.attribution.events.Event
4
+ import com.affise.attribution.events.predefined.*
5
+ import com.affise.attribution.events.subscription.SubscriptionParameters
6
+ import com.affise.attribution.react.ext.toTouchType
7
+ import kotlin.math.roundToLong
8
+
9
+
10
+ class AffiseEvensFactory : AffiseBaseEvensFactory() {
11
+
12
+ private val subscriptionEventsFactory = AffiseSubtypeEventsFactory();
13
+
14
+ override fun event(map: Map<*, *>?): Event? {
15
+ return when (map?.get(KEY_NAME)) {
16
+ "AchieveLevel" -> eventAchieveLevelEvent(map)
17
+ "AddPaymentInfo" -> eventAddPaymentInfoEvent(map)
18
+ "AddToCart" -> eventAddToCartEvent(map)
19
+ "AddToWishlist" -> eventAddToWishlistEvent(map)
20
+ "ClickAdv" -> eventClickAdv(map)
21
+ "CompleteRegistration" -> eventCompleteRegistrationEvent(map)
22
+ "CompleteStream" -> eventCompleteStreamEvent(map)
23
+ "CompleteTrial" -> eventCompleteTrialEvent(map)
24
+ "CompleteTutorial" -> eventCompleteTutorialEvent(map)
25
+ "ContentItemsView" -> eventContentItemsViewEvent(map)
26
+ "CustomId01" -> eventCustomId01Event(map)
27
+ "CustomId02" -> eventCustomId02Event(map)
28
+ "CustomId03" -> eventCustomId03Event(map)
29
+ "CustomId04" -> eventCustomId04Event(map)
30
+ "CustomId05" -> eventCustomId05Event(map)
31
+ "CustomId06" -> eventCustomId06Event(map)
32
+ "CustomId07" -> eventCustomId07Event(map)
33
+ "CustomId08" -> eventCustomId08Event(map)
34
+ "CustomId09" -> eventCustomId09Event(map)
35
+ "CustomId10" -> eventCustomId10Event(map)
36
+ "DeepLinked" -> eventDeepLinkedEvent(map)
37
+ "InitiatePurchase" -> eventInitiatePurchaseEvent(map)
38
+ "InitiateStream" -> eventInitiateStreamEvent(map)
39
+ "Invite" -> eventInviteEvent(map)
40
+ "LastAttributedTouch" -> eventLastAttributedTouchEvent(map)
41
+ "ListView" -> eventListViewEvent(map)
42
+ "Login" -> eventLoginEvent(map)
43
+ "OpenedFromPushNotification" -> eventOpenedFromPushNotificationEvent(map)
44
+ "Purchase" -> eventPurchaseEvent(map)
45
+ "Rate" -> eventRateEvent(map)
46
+ "ReEngage" -> eventReEngageEvent(map)
47
+ "Reserve" -> eventReserveEvent(map)
48
+ "Search" -> eventSearchEvent(map)
49
+ "Share" -> eventShareEvent(map)
50
+ "SpendCredits" -> eventSpendCreditsEvent(map)
51
+ "StartRegistration" -> eventStartRegistrationEvent(map)
52
+ "StartTrial" -> eventStartTrialEvent(map)
53
+ "StartTutorial" -> eventStartTutorialEvent(map)
54
+ "Subscribe" -> eventSubscribeEvent(map)
55
+ "TravelBooking" -> eventTravelBookingEvent(map)
56
+ "UnlockAchievement" -> eventUnlockAchievementEvent(map)
57
+ "Unsubscribe" -> eventUnsubscribeEvent(map)
58
+ "Update" -> eventUpdateEvent(map)
59
+ "ViewAdv" -> eventViewAdvEvent(map)
60
+ "ViewCart" -> eventViewCartEvent(map)
61
+ "ViewItem" -> eventViewItemEvent(map)
62
+ "ViewItems" -> eventViewItemsEvent(map)
63
+ SubscriptionParameters.AFFISE_SUBSCRIPTION_ACTIVATION,
64
+ SubscriptionParameters.AFFISE_SUBSCRIPTION_CANCELLATION,
65
+ SubscriptionParameters.AFFISE_SUBSCRIPTION_ENTERED_BILLING_RETRY,
66
+ SubscriptionParameters.AFFISE_SUBSCRIPTION_FIRST_CONVERSION,
67
+ SubscriptionParameters.AFFISE_SUBSCRIPTION_REACTIVATION,
68
+ SubscriptionParameters.AFFISE_SUBSCRIPTION_RENEWAL,
69
+ SubscriptionParameters.AFFISE_SUBSCRIPTION_RENEWAL_FROM_BILLING_RETRY -> subscriptionEventsFactory.event(map)
70
+ else -> null
71
+ }
72
+ }
73
+
74
+ private fun eventAchieveLevelEvent(map: Map<*, *>): AchieveLevelEvent {
75
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
76
+ map,
77
+ "affise_event_achieve_level_timestamp"
78
+ )
79
+ val level = getJSONObject(map, "affise_event_achieve_level")
80
+
81
+ return AchieveLevelEvent(
82
+ level,
83
+ timeStamp,
84
+ userData
85
+ ).apply {
86
+ addPredefinedParameters(this, map)
87
+ }
88
+ }
89
+
90
+ private fun eventAddPaymentInfoEvent(map: Map<*, *>): AddPaymentInfoEvent {
91
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
92
+ map,
93
+ "affise_event_add_payment_info_timestamp"
94
+ )
95
+ val paymentInfo = getJSONObject(map, "affise_event_add_payment_info")
96
+
97
+ return AddPaymentInfoEvent(
98
+ paymentInfo,
99
+ timeStamp,
100
+ userData
101
+ ).apply {
102
+ addPredefinedParameters(this, map)
103
+ }
104
+ }
105
+
106
+ private fun eventAddToCartEvent(map: Map<*, *>): AddToCartEvent {
107
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
108
+ map,
109
+ "affise_event_add_to_cart_timestamp"
110
+ )
111
+ val addToCartObject = getJSONObjectOrNull(map, "affise_event_add_to_cart")
112
+
113
+ return AddToCartEvent(
114
+ addToCartObject,
115
+ timeStamp,
116
+ userData
117
+ ).apply {
118
+ addPredefinedParameters(this, map)
119
+ }
120
+ }
121
+
122
+ private fun eventAddToWishlistEvent(map: Map<*, *>): AddToWishlistEvent {
123
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
124
+ map,
125
+ "affise_event_add_to_wishlist_timestamp"
126
+ )
127
+ val wishList = getJSONObject(map, "affise_event_add_to_wishlist")
128
+
129
+ return AddToWishlistEvent(
130
+ wishList,
131
+ timeStamp,
132
+ userData
133
+ ).apply {
134
+ addPredefinedParameters(this, map)
135
+ }
136
+ }
137
+
138
+ private fun eventClickAdv(map: Map<*, *>): ClickAdvEvent {
139
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
140
+ map,
141
+ "affise_event_click_adv_timestamp"
142
+ )
143
+ val advertisement = getSerializeString(map, "affise_event_click_adv")
144
+
145
+ return ClickAdvEvent(
146
+ advertisement,
147
+ timeStamp,
148
+ userData,
149
+ ).apply {
150
+ addPredefinedParameters(this, map)
151
+ }
152
+ }
153
+
154
+ private fun eventCompleteRegistrationEvent(map: Map<*, *>): CompleteRegistrationEvent {
155
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
156
+ map,
157
+ "affise_event_complete_registration_timestamp"
158
+ )
159
+ val registration = getJSONObject(map, "affise_event_complete_registration")
160
+
161
+ return CompleteRegistrationEvent(
162
+ registration,
163
+ timeStamp,
164
+ userData,
165
+ ).apply {
166
+ addPredefinedParameters(this, map)
167
+ }
168
+ }
169
+
170
+ private fun eventCompleteStreamEvent(map: Map<*, *>): CompleteStreamEvent {
171
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
172
+ map,
173
+ "affise_event_complete_stream_timestamp"
174
+ )
175
+ val stream = getJSONObject(map, "affise_event_complete_stream")
176
+
177
+ return CompleteStreamEvent(
178
+ stream,
179
+ timeStamp,
180
+ userData,
181
+ ).apply {
182
+ addPredefinedParameters(this, map)
183
+ }
184
+ }
185
+
186
+ private fun eventCompleteTrialEvent(map: Map<*, *>): CompleteTrialEvent {
187
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
188
+ map,
189
+ "affise_event_complete_trial_timestamp"
190
+ )
191
+ val trial = getJSONObject(map, "affise_event_complete_trial")
192
+
193
+ return CompleteTrialEvent(
194
+ trial,
195
+ timeStamp,
196
+ userData,
197
+ ).apply {
198
+ addPredefinedParameters(this, map)
199
+ }
200
+ }
201
+
202
+ private fun eventCompleteTutorialEvent(map: Map<*, *>): CompleteTutorialEvent {
203
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
204
+ map,
205
+ "affise_event_complete_tutorial_timestamp"
206
+ )
207
+ val tutorial = getJSONObject(map, "affise_event_complete_tutorial")
208
+
209
+ return CompleteTutorialEvent(
210
+ tutorial,
211
+ timeStamp,
212
+ userData,
213
+ ).apply {
214
+ addPredefinedParameters(this, map)
215
+ }
216
+ }
217
+
218
+ private fun eventContentItemsViewEvent(map: Map<*, *>): ContentItemsViewEvent {
219
+ val userData = getUserData(map)
220
+ val objects = getJsonList(map, "affise_event_content_items_view")
221
+
222
+ return ContentItemsViewEvent(
223
+ objects,
224
+ userData,
225
+ ).apply {
226
+ addPredefinedParameters(this, map)
227
+ }
228
+ }
229
+
230
+ private fun eventCustomId01Event(map: Map<*, *>): CustomId01Event {
231
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
232
+ map,
233
+ "affise_event_custom_id_01_timestamp"
234
+ )
235
+ val custom = getSerializeString(map, "affise_event_custom_id_01")
236
+
237
+ return CustomId01Event(
238
+ custom,
239
+ timeStamp,
240
+ userData,
241
+ ).apply {
242
+ addPredefinedParameters(this, map)
243
+ }
244
+ }
245
+
246
+ private fun eventCustomId02Event(map: Map<*, *>): CustomId02Event {
247
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
248
+ map,
249
+ "affise_event_custom_id_02_timestamp"
250
+ )
251
+ val custom = getSerializeString(map, "affise_event_custom_id_02")
252
+
253
+ return CustomId02Event(
254
+ custom,
255
+ timeStamp,
256
+ userData,
257
+ ).apply {
258
+ addPredefinedParameters(this, map)
259
+ }
260
+ }
261
+
262
+ private fun eventCustomId03Event(map: Map<*, *>): CustomId03Event {
263
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
264
+ map,
265
+ "affise_event_custom_id_03_timestamp"
266
+ )
267
+ val custom = getSerializeString(map, "affise_event_custom_id_03")
268
+
269
+ return CustomId03Event(
270
+ custom,
271
+ timeStamp,
272
+ userData,
273
+ ).apply {
274
+ addPredefinedParameters(this, map)
275
+ }
276
+ }
277
+
278
+ private fun eventCustomId04Event(map: Map<*, *>): CustomId04Event {
279
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
280
+ map,
281
+ "affise_event_custom_id_04_timestamp"
282
+ )
283
+ val custom = getSerializeString(map, "affise_event_custom_id_04")
284
+
285
+ return CustomId04Event(
286
+ custom,
287
+ timeStamp,
288
+ userData,
289
+ ).apply {
290
+ addPredefinedParameters(this, map)
291
+ }
292
+ }
293
+
294
+ private fun eventCustomId05Event(map: Map<*, *>): CustomId05Event {
295
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
296
+ map,
297
+ "affise_event_custom_id_05_timestamp"
298
+ )
299
+ val custom = getSerializeString(map, "affise_event_custom_id_05")
300
+
301
+ return CustomId05Event(
302
+ custom,
303
+ timeStamp,
304
+ userData,
305
+ ).apply {
306
+ addPredefinedParameters(this, map)
307
+ }
308
+ }
309
+
310
+ private fun eventCustomId06Event(map: Map<*, *>): CustomId06Event {
311
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
312
+ map,
313
+ "affise_event_custom_id_06_timestamp"
314
+ )
315
+ val custom = getSerializeString(map, "affise_event_custom_id_06")
316
+
317
+ return CustomId06Event(
318
+ custom,
319
+ timeStamp,
320
+ userData,
321
+ ).apply {
322
+ addPredefinedParameters(this, map)
323
+ }
324
+ }
325
+
326
+ private fun eventCustomId07Event(map: Map<*, *>): CustomId07Event {
327
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
328
+ map,
329
+ "affise_event_custom_id_07_timestamp"
330
+ )
331
+ val custom = getSerializeString(map, "affise_event_custom_id_07")
332
+
333
+ return CustomId07Event(
334
+ custom,
335
+ timeStamp,
336
+ userData,
337
+ ).apply {
338
+ addPredefinedParameters(this, map)
339
+ }
340
+ }
341
+
342
+ private fun eventCustomId08Event(map: Map<*, *>): CustomId08Event {
343
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
344
+ map,
345
+ "affise_event_custom_id_08_timestamp"
346
+ )
347
+ val custom = getSerializeString(map, "affise_event_custom_id_08")
348
+
349
+ return CustomId08Event(
350
+ custom,
351
+ timeStamp,
352
+ userData,
353
+ ).apply {
354
+ addPredefinedParameters(this, map)
355
+ }
356
+ }
357
+
358
+ private fun eventCustomId09Event(map: Map<*, *>): CustomId09Event {
359
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
360
+ map,
361
+ "affise_event_custom_id_09_timestamp"
362
+ )
363
+ val custom = getSerializeString(map, "affise_event_custom_id_09")
364
+
365
+ return CustomId09Event(
366
+ custom,
367
+ timeStamp,
368
+ userData,
369
+ ).apply {
370
+ addPredefinedParameters(this, map)
371
+ }
372
+ }
373
+
374
+ private fun eventCustomId10Event(map: Map<*, *>): CustomId10Event {
375
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
376
+ map,
377
+ "affise_event_custom_id_10_timestamp"
378
+ )
379
+ val custom = getSerializeString(map, "affise_event_custom_id_10")
380
+
381
+ return CustomId10Event(
382
+ custom,
383
+ timeStamp,
384
+ userData,
385
+ ).apply {
386
+ addPredefinedParameters(this, map)
387
+ }
388
+ }
389
+
390
+ private fun eventDeepLinkedEvent(map: Map<*, *>): DeepLinkedEvent {
391
+ val userData = getUserData(map)
392
+ val isLinked = getSerializeString(map, "affise_event_deep_linked").toBoolean()
393
+
394
+ return DeepLinkedEvent(
395
+ isLinked,
396
+ userData,
397
+ ).apply {
398
+ addPredefinedParameters(this, map)
399
+ }
400
+ }
401
+
402
+ private fun eventInitiatePurchaseEvent(map: Map<*, *>): InitiatePurchaseEvent {
403
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
404
+ map,
405
+ "affise_event_initiate_purchase_timestamp"
406
+ )
407
+ val purchaseData = getJSONObject(map, "affise_event_initiate_purchase")
408
+
409
+ return InitiatePurchaseEvent(
410
+ purchaseData,
411
+ timeStamp,
412
+ userData,
413
+ ).apply {
414
+ addPredefinedParameters(this, map)
415
+ }
416
+ }
417
+
418
+ private fun eventInitiateStreamEvent(map: Map<*, *>): InitiateStreamEvent {
419
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
420
+ map,
421
+ "affise_event_initiate_stream_timestamp"
422
+ )
423
+ val stream = getJSONObject(map, "affise_event_initiate_stream")
424
+
425
+ return InitiateStreamEvent(
426
+ stream,
427
+ timeStamp,
428
+ userData,
429
+ ).apply {
430
+ addPredefinedParameters(this, map)
431
+ }
432
+ }
433
+
434
+ private fun eventInviteEvent(map: Map<*, *>): InviteEvent {
435
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
436
+ map,
437
+ "affise_event_invite_timestamp"
438
+ )
439
+ val invite = getJSONObject(map, "affise_event_invite")
440
+
441
+ return InviteEvent(
442
+ invite,
443
+ timeStamp,
444
+ userData,
445
+ ).apply {
446
+ addPredefinedParameters(this, map)
447
+ }
448
+ }
449
+
450
+ private fun eventLastAttributedTouchEvent(map: Map<*, *>): LastAttributedTouchEvent {
451
+ val (timeStamp, userData) = getUserDataAndTimeStamp(map, "affise_event_last_attributed_touch_timestamp")
452
+ val touchType = getSerializeString(map, "affise_event_last_attributed_touch_type").toTouchType() ?: TouchType.CLICK
453
+ val touchData = getJSONObject(map, "affise_event_last_attributed_touch_data")
454
+
455
+ return LastAttributedTouchEvent(
456
+ touchType,
457
+ timeStamp,
458
+ touchData,
459
+ userData,
460
+ ).apply {
461
+ addPredefinedParameters(this, map)
462
+ }
463
+ }
464
+
465
+ private fun eventListViewEvent(map: Map<*, *>): ListViewEvent {
466
+ val userData = getUserData(map)
467
+ val list = getJSONObject(map, "affise_event_list_view")
468
+
469
+ return ListViewEvent(
470
+ list,
471
+ userData,
472
+ ).apply {
473
+ addPredefinedParameters(this, map)
474
+ }
475
+ }
476
+
477
+ private fun eventLoginEvent(map: Map<*, *>): LoginEvent {
478
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
479
+ map,
480
+ "affise_event_login_timestamp"
481
+ )
482
+ val login = getJSONObject(map, "affise_event_login")
483
+
484
+ return LoginEvent(
485
+ login,
486
+ timeStamp,
487
+ userData,
488
+ ).apply {
489
+ addPredefinedParameters(this, map)
490
+ }
491
+ }
492
+
493
+ private fun eventOpenedFromPushNotificationEvent(map: Map<*, *>): OpenedFromPushNotificationEvent {
494
+ val userData = getUserData(map)
495
+ val details = getSerializeString(map, "affise_event_opened_from_push_notification")
496
+
497
+ return OpenedFromPushNotificationEvent(
498
+ details,
499
+ userData,
500
+ ).apply {
501
+ addPredefinedParameters(this, map)
502
+ }
503
+ }
504
+
505
+ private fun eventPurchaseEvent(map: Map<*, *>): PurchaseEvent {
506
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
507
+ map,
508
+ "affise_event_purchase_timestamp"
509
+ )
510
+ val purchaseData = getJSONObject(map, "affise_event_purchase")
511
+
512
+ return PurchaseEvent(
513
+ purchaseData,
514
+ timeStamp,
515
+ userData,
516
+ ).apply {
517
+ addPredefinedParameters(this, map)
518
+ }
519
+ }
520
+
521
+ private fun eventRateEvent(map: Map<*, *>): RateEvent {
522
+ val (timeStamp, userData) = getUserDataAndTimeStamp(map, "affise_event_rate_timestamp")
523
+ val rate = getJSONObject(map, "affise_event_rate")
524
+
525
+ return RateEvent(
526
+ rate,
527
+ timeStamp,
528
+ userData,
529
+ ).apply {
530
+ addPredefinedParameters(this, map)
531
+ }
532
+ }
533
+
534
+ private fun eventReEngageEvent(map: Map<*, *>): ReEngageEvent {
535
+ val userData = getUserData(map)
536
+ val reEngage = getSerializeString(map, "affise_event_re_engage")
537
+
538
+ return ReEngageEvent(
539
+ reEngage,
540
+ userData,
541
+ ).apply {
542
+ addPredefinedParameters(this, map)
543
+ }
544
+ }
545
+
546
+ private fun eventReserveEvent(map: Map<*, *>): ReserveEvent {
547
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
548
+ map,
549
+ "affise_event_reserve_timestamp"
550
+ )
551
+ val reserve = getJsonList(map, "affise_event_reserve")
552
+
553
+ return ReserveEvent(
554
+ reserve,
555
+ timeStamp,
556
+ userData,
557
+ ).apply {
558
+ addPredefinedParameters(this, map)
559
+ }
560
+ }
561
+
562
+ private fun eventSearchEvent(map: Map<*, *>): SearchEvent {
563
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
564
+ map,
565
+ "affise_event_search_timestamp"
566
+ )
567
+ val search = getJSONArray(map, "affise_event_search")
568
+
569
+ return SearchEvent(
570
+ search,
571
+ timeStamp,
572
+ userData,
573
+ ).apply {
574
+ addPredefinedParameters(this, map)
575
+ }
576
+ }
577
+
578
+ private fun eventShareEvent(map: Map<*, *>): ShareEvent {
579
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
580
+ map,
581
+ "affise_event_share_timestamp"
582
+ )
583
+ val share = getJSONObject(map, "affise_event_share")
584
+
585
+ return ShareEvent(
586
+ share,
587
+ timeStamp,
588
+ userData,
589
+ ).apply {
590
+ addPredefinedParameters(this, map)
591
+ }
592
+ }
593
+
594
+ private fun eventSpendCreditsEvent(map: Map<*, *>): SpendCreditsEvent {
595
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
596
+ map,
597
+ "affise_event_spend_credits_timestamp"
598
+ )
599
+ val credits = getSerializeString(map, "affise_event_spend_credits").toDoubleOrNull()?.roundToLong() ?: 0L
600
+
601
+ return SpendCreditsEvent(
602
+ credits,
603
+ timeStamp,
604
+ userData,
605
+ ).apply {
606
+ addPredefinedParameters(this, map)
607
+ }
608
+ }
609
+
610
+ private fun eventStartRegistrationEvent(map: Map<*, *>): StartRegistrationEvent {
611
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
612
+ map,
613
+ "affise_event_start_registration_timestamp"
614
+ )
615
+ val registration = getJSONObject(map, "affise_event_start_registration")
616
+
617
+ return StartRegistrationEvent(
618
+ registration,
619
+ timeStamp,
620
+ userData,
621
+ ).apply {
622
+ addPredefinedParameters(this, map)
623
+ }
624
+ }
625
+
626
+ private fun eventStartTrialEvent(map: Map<*, *>): StartTrialEvent {
627
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
628
+ map,
629
+ "affise_event_start_trial_timestamp"
630
+ )
631
+ val trial = getJSONObject(map, "affise_event_start_trial")
632
+
633
+ return StartTrialEvent(
634
+ trial,
635
+ timeStamp,
636
+ userData,
637
+ ).apply {
638
+ addPredefinedParameters(this, map)
639
+ }
640
+ }
641
+
642
+ private fun eventStartTutorialEvent(map: Map<*, *>): StartTutorialEvent {
643
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
644
+ map,
645
+ "affise_event_start_tutorial_timestamp"
646
+ )
647
+ val tutorial = getJSONObject(map, "affise_event_start_tutorial")
648
+
649
+ return StartTutorialEvent(
650
+ tutorial,
651
+ timeStamp,
652
+ userData,
653
+ ).apply {
654
+ addPredefinedParameters(this, map)
655
+ }
656
+ }
657
+
658
+ private fun eventSubscribeEvent(map: Map<*, *>): SubscribeEvent {
659
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
660
+ map,
661
+ "affise_event_subscribe_timestamp"
662
+ )
663
+ val subscribe = getJSONObject(map, "affise_event_subscribe")
664
+
665
+ return SubscribeEvent(
666
+ subscribe,
667
+ timeStamp,
668
+ userData,
669
+ ).apply {
670
+ addPredefinedParameters(this, map)
671
+ }
672
+ }
673
+
674
+ private fun eventTravelBookingEvent(map: Map<*, *>): TravelBookingEvent {
675
+ val userData = getUserData(map)
676
+ val details = getJSONArray(map, "affise_event_travel_booking")
677
+
678
+ return TravelBookingEvent(
679
+ details,
680
+ userData,
681
+ ).apply {
682
+ addPredefinedParameters(this, map)
683
+ }
684
+ }
685
+
686
+ private fun eventUnlockAchievementEvent(map: Map<*, *>): UnlockAchievementEvent {
687
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
688
+ map,
689
+ "affise_event_unlock_achievement_timestamp"
690
+ )
691
+ val achievement = getJSONObject(map, "affise_event_unlock_achievement")
692
+
693
+ return UnlockAchievementEvent(
694
+ achievement,
695
+ timeStamp,
696
+ userData,
697
+ ).apply {
698
+ addPredefinedParameters(this, map)
699
+ }
700
+ }
701
+
702
+ private fun eventUnsubscribeEvent(map: Map<*, *>): UnsubscribeEvent {
703
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
704
+ map,
705
+ "affise_event_unsubscribe_timestamp"
706
+ )
707
+ val unsubscribe = getJSONObject(map, "affise_event_unsubscribe")
708
+
709
+ return UnsubscribeEvent(
710
+ unsubscribe,
711
+ timeStamp,
712
+ userData,
713
+ ).apply {
714
+ addPredefinedParameters(this, map)
715
+ }
716
+ }
717
+
718
+ private fun eventUpdateEvent(map: Map<*, *>): UpdateEvent {
719
+ val userData = getUserData(map)
720
+ val details = getJSONArray(map, "affise_event_update")
721
+
722
+ return UpdateEvent(
723
+ details,
724
+ userData,
725
+ ).apply {
726
+ addPredefinedParameters(this, map)
727
+ }
728
+ }
729
+
730
+ private fun eventViewAdvEvent(map: Map<*, *>): ViewAdvEvent {
731
+ val (timeStamp, userData) = getUserDataAndTimeStamp(
732
+ map,
733
+ "affise_event_view_adv_timestamp"
734
+ )
735
+ val ad = getJSONObject(map, "affise_event_view_adv")
736
+
737
+ return ViewAdvEvent(
738
+ ad,
739
+ timeStamp,
740
+ userData,
741
+ ).apply {
742
+ addPredefinedParameters(this, map)
743
+ }
744
+ }
745
+
746
+ private fun eventViewCartEvent(map: Map<*, *>): ViewCartEvent {
747
+ val userData = getUserData(map)
748
+ val objects = getJSONObject(map, "affise_event_view_cart")
749
+
750
+ return ViewCartEvent(
751
+ objects,
752
+ userData,
753
+ ).apply {
754
+ addPredefinedParameters(this, map)
755
+ }
756
+ }
757
+
758
+ private fun eventViewItemEvent(map: Map<*, *>): ViewItemEvent {
759
+ val userData = getUserData(map)
760
+ val item = getJSONObject(map, "affise_event_view_item")
761
+
762
+ return ViewItemEvent(
763
+ item,
764
+ userData,
765
+ ).apply {
766
+ addPredefinedParameters(this, map)
767
+ }
768
+ }
769
+
770
+ private fun eventViewItemsEvent(map: Map<*, *>): ViewItemsEvent {
771
+ val userData = getUserData(map)
772
+ val items = getJSONArray(map, "affise_event_view_items")
773
+
774
+ return ViewItemsEvent(
775
+ items,
776
+ userData,
777
+ ).apply {
778
+ addPredefinedParameters(this, map)
779
+ }
780
+ }
781
+ }