@@ -4,7 +4,6 @@ import com.facebook.react.bridge.*
44import com.facebook.react.module.annotations.ReactModule
55import io.piano.android.analytics.Configuration
66import io.piano.android.analytics.PianoAnalytics
7- import io.piano.android.analytics.PrivacyModesStorage
87import io.piano.android.analytics.model.Event
98import io.piano.android.analytics.model.PrivacyMode
109import io.piano.android.analytics.model.Property
@@ -16,14 +15,11 @@ import io.piano.android.analytics.model.VisitorIDType
1615class RNPianoAnalyticsModule (reactContext : ReactApplicationContext ) :
1716 RNPianoAnalyticsSpec (reactContext) {
1817
19- override fun getName (): String {
20- return NAME
21- }
22-
2318 @ReactMethod
24- override fun sendEvent (eventName : String , params : ReadableMap ) {
19+ override fun sendEvent (eventName : String? , params : ReadableMap ? , promise : Promise ? ) {
2520 val properties = mutableListOf<Property >()
26- val iterator = params.keySetIterator()
21+ params?.let {
22+ val iterator = params.keySetIterator()
2723 while (iterator.hasNextKey()) {
2824 val key = iterator.nextKey()
2925 when (params.getType(key)) {
@@ -39,20 +35,44 @@ class RNPianoAnalyticsModule(reactContext: ReactApplicationContext) :
3935 else -> {}
4036 }
4137 }
42- val event = Event .Builder (eventName).properties(properties).build()
43- PianoAnalytics .getInstance().sendEvents(event)
38+ val event = eventName?.let { evtName -> Event .Builder (evtName).properties(properties).build() }
39+ event?.let { e -> PianoAnalytics .getInstance().sendEvents(e) }
40+
41+ promise?.resolve(" event sent successfully" )
42+ } ? : {
43+ promise?.reject(RNPianoAnalyticsModule .NAME ," params are not defined" )
44+ }
4445 }
4546
4647 @ReactMethod
47- override fun setUser (id : String , category : String? , enableStorage : Boolean ) {
48+ override fun setUser (
49+ userId : String? ,
50+ category : String? ,
51+ enableStorage : Boolean ,
52+ promise : Promise ?
53+ ) {
4854 val userStorage = PianoAnalytics .getInstance().userStorage
49- userStorage.currentUser = User (id, category, enableStorage)
55+ userId?.let {
56+ userStorage.currentUser = User (userId, category, enableStorage)
57+ promise?.resolve(" userId set successfully" )
58+ } ? : {
59+ promise?.reject(RNPianoAnalyticsModule .NAME ," userId not defined" )
60+ }
61+ }
62+
63+ override fun deleteUser (promise : Promise ? ) {
64+ PianoAnalytics .getInstance().userStorage.currentUser = null
5065 }
5166
5267 @ReactMethod
53- override fun privacySetMode (mode : String ) {
54- val privacyMode = getPrivacyMode(mode) ? : return
55- PianoAnalytics .getInstance().privacyModesStorage.currentMode = privacyMode
68+ override fun privacySetMode (mode : String? , promise : Promise ? ) {
69+ mode?.let {
70+ val privacyMode = getPrivacyMode(mode) ? : return
71+ PianoAnalytics .getInstance().privacyModesStorage.currentMode = privacyMode
72+ promise?.resolve(" privacy mode set successfully" )
73+ } ? : {
74+ promise?.reject(RNPianoAnalyticsModule .NAME ," mode is not defined" )
75+ }
5676 }
5777
5878 @ReactMethod
@@ -62,7 +82,7 @@ class RNPianoAnalyticsModule(reactContext: ReactApplicationContext) :
6282 }
6383
6484 @ReactMethod
65- override fun setVisitorId (visitorId : String ) {
85+ override fun setVisitorId (visitorId : String? , promise : Promise ? ) {
6686 PianoAnalytics .getInstance().customVisitorId = visitorId
6787 }
6888
@@ -77,13 +97,18 @@ class RNPianoAnalyticsModule(reactContext: ReactApplicationContext) :
7797 }
7898
7999 @ReactMethod
80- override fun setConfiguration (collectDomain : String , siteId : Int ) {
81- val config = Configuration .Builder (
82- collectDomain = collectDomain,
83- site = siteId.toInt(),
84- visitorIDType = VisitorIDType .UUID ,
85- ).build()
86- PianoAnalytics .init (reactApplicationContext, config)
100+ override fun setConfiguration (collectionName : String? , siteId : Double , promise : Promise ? ) {
101+ collectionName?.let {
102+ val config = Configuration .Builder (
103+ collectDomain = collectionName,
104+ site = siteId.toInt(),
105+ visitorIDType = VisitorIDType .UUID ,
106+ ).build()
107+ PianoAnalytics .init (reactApplicationContext, config)
108+ promise?.resolve(" config initialized successfully" )
109+ } ? : {
110+ promise?.reject(RNPianoAnalyticsModule .NAME ," collectionName is not defined" )
111+ }
87112 }
88113
89114 // PRIVACY INCLUDE PROPERTY
0 commit comments