tagworks-sdk-v1-react 1.1.20 → 1.1.22

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 (62) hide show
  1. package/LICENSE +3 -1
  2. package/README.md +35 -552
  3. package/android/build.gradle +1 -1
  4. package/android/src/main/java/com/tagworkssdkv1/DataBundleModule.kt +340 -366
  5. package/android/src/main/java/com/tagworkssdkv1/OnCmsBannerViewManager.kt +15 -4
  6. package/android/src/main/java/com/tagworkssdkv1/TagWorksDeeplinkModule.kt +117 -0
  7. package/android/src/main/java/com/tagworkssdkv1/TagWorksModule.kt +417 -376
  8. package/android/src/main/java/com/tagworkssdkv1/TagWorksPopupModule.kt +22 -26
  9. package/android/src/main/java/com/tagworkssdkv1/TagworksSdkV1Package.kt +3 -2
  10. package/ios/DataBundleModule.swift +8 -8
  11. package/ios/OnCmsBannerViewManager.swift +6 -5
  12. package/ios/TagWorksDeeplinkModule.swift +64 -0
  13. package/ios/TagWorksDeeplinkModuleBridge.m +19 -0
  14. package/ios/TagWorksModule.swift +113 -27
  15. package/ios/TagWorksModuleBridge.m +20 -2
  16. package/ios/TagWorksPopupModule.swift +41 -18
  17. package/ios/TagWorksPopupModuleBridge.m +2 -0
  18. package/lib/commonjs/RegisterOnCmsBannerView.js +10 -0
  19. package/lib/commonjs/RegisterOnCmsBannerView.js.map +1 -0
  20. package/lib/commonjs/TagWorksDeeplink.js +48 -0
  21. package/lib/commonjs/TagWorksDeeplink.js.map +1 -0
  22. package/lib/commonjs/autoTrackers/ReactNavigationPageTracker.js +135 -0
  23. package/lib/commonjs/autoTrackers/ReactNavigationPageTracker.js.map +1 -0
  24. package/lib/commonjs/index.js +36 -10
  25. package/lib/commonjs/index.js.map +1 -1
  26. package/lib/module/RegisterOnCmsBannerView.js +6 -0
  27. package/lib/module/RegisterOnCmsBannerView.js.map +1 -0
  28. package/lib/module/TagWorksDeeplink.js +44 -0
  29. package/lib/module/TagWorksDeeplink.js.map +1 -0
  30. package/lib/module/autoTrackers/ReactNavigationPageTracker.js +131 -0
  31. package/lib/module/autoTrackers/ReactNavigationPageTracker.js.map +1 -0
  32. package/lib/module/index.js +15 -11
  33. package/lib/module/index.js.map +1 -1
  34. package/lib/typescript/commonjs/babel.config.d.ts +2 -0
  35. package/lib/typescript/commonjs/babel.config.d.ts.map +1 -0
  36. package/lib/typescript/commonjs/src/RegisterOnCmsBannerView.d.ts +3 -0
  37. package/lib/typescript/commonjs/src/RegisterOnCmsBannerView.d.ts.map +1 -0
  38. package/lib/typescript/commonjs/src/TagWorksDeeplink.d.ts +23 -0
  39. package/lib/typescript/commonjs/src/TagWorksDeeplink.d.ts.map +1 -0
  40. package/lib/typescript/commonjs/src/autoTrackers/ReactNavigationPageTracker.d.ts +12 -0
  41. package/lib/typescript/commonjs/src/autoTrackers/ReactNavigationPageTracker.d.ts.map +1 -0
  42. package/lib/typescript/commonjs/src/index.d.ts +9 -3
  43. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  44. package/lib/typescript/module/babel.config.d.ts +2 -0
  45. package/lib/typescript/module/babel.config.d.ts.map +1 -0
  46. package/lib/typescript/module/src/RegisterOnCmsBannerView.d.ts +3 -0
  47. package/lib/typescript/module/src/RegisterOnCmsBannerView.d.ts.map +1 -0
  48. package/lib/typescript/module/src/TagWorksDeeplink.d.ts +23 -0
  49. package/lib/typescript/module/src/TagWorksDeeplink.d.ts.map +1 -0
  50. package/lib/typescript/module/src/autoTrackers/ReactNavigationPageTracker.d.ts +12 -0
  51. package/lib/typescript/module/src/autoTrackers/ReactNavigationPageTracker.d.ts.map +1 -0
  52. package/lib/typescript/module/src/index.d.ts +9 -3
  53. package/lib/typescript/module/src/index.d.ts.map +1 -1
  54. package/package.json +28 -8
  55. package/src/RegisterOnCmsBannerView.js +5 -0
  56. package/src/TagWorksDeeplink.js +45 -0
  57. package/src/autoTrackers/ReactNavigationPageTracker.js +137 -0
  58. package/src/index.js +48 -0
  59. package/tagworks-sdk-v1-react.podspec +9 -2
  60. package/android/src/main/java/com/tagworkssdkv1/TagworksSdkV1Module.kt +0 -25
  61. package/android/src/main/res/drawable/default_img.png +0 -0
  62. package/src/index.tsx +0 -27
@@ -6,421 +6,395 @@ import com.facebook.react.bridge.ReactApplicationContext
6
6
  import com.facebook.react.bridge.ReactContextBaseJavaModule
7
7
  import com.facebook.react.bridge.ReactMethod
8
8
  import com.obzen.tagworks.TagWorks
9
- import com.obzen.tagworks.data.DataBundle
10
- import com.obzen.tagworks.data.DimensionType
11
- import com.obzen.tagworks.util.Logger
9
+ import com.obzen.tagworks.event.data.DataBundle
10
+ import com.obzen.tagworks.event.data.DimensionType
12
11
  import org.json.JSONArray
13
12
  import org.json.JSONObject
14
13
 
15
14
  class DataBundleModule(context: ReactApplicationContext):ReactContextBaseJavaModule(context) {
16
15
 
17
- private var eventData= DataBundle()
18
-
19
- override fun getName(): String {
20
- return "DataBundleModule"
21
- }
22
-
23
- /**
24
- * DataBundle 초기화 함수
25
- */
26
- @ReactMethod
27
- override fun initialize() {
28
- super.initialize()
29
- eventData.dataBundle.clear()
30
- eventData.dimensions.clear()
31
- eventData.dynamicDimensions.clear()
32
- }
33
-
34
- @ReactMethod
35
- fun initDataBundle(jsonString: String?) {
36
- initialize()
37
- Logger.d(TAG, "DataBundle initialize from : $jsonString")
38
-
39
- try {
40
- val jsonObject = JSONObject(jsonString)
41
-
42
- val dataDictionary = jsonObject.optJSONObject("dataDictionary")
43
- if (dataDictionary != null) {
44
- val keys = dataDictionary.keys()
45
- while (keys.hasNext()) {
46
- val key = keys.next()
47
- val value = dataDictionary.getString(key)
48
- eventData.dataBundle.putString(key,value)
49
- }
50
- }
51
-
52
- val eventDimensions = jsonObject.optJSONArray("eventDimensions")
53
- if (eventDimensions != null) {
54
- for (i in 0 until eventDimensions.length()) {
55
- val dimensionObject = eventDimensions.getJSONObject(i)
56
-
57
- val general = dimensionObject.optJSONObject("General")
58
- if (general != null) {
59
- val keys = general.keys()
60
- while (keys.hasNext()) {
61
- val key = keys.next()
62
- val value = general.getString(key)
63
- if(TagWorks.getInstance().isUseDynamicParameter) {
64
- eventData.setDynamicDimension(key,value)
65
- } else {
66
- eventData.setDimension(key.toInt(),value)
67
- }
16
+ private var eventData= DataBundle()
17
+
18
+ override fun getName(): String {
19
+ return "DataBundleModule"
20
+ }
21
+
22
+ /**
23
+ * DataBundle 초기화 함수
24
+ */
25
+ @ReactMethod
26
+ override fun initialize() {
27
+ super.initialize()
28
+ eventData.dataBundle.clear()
29
+ eventData.dimensions.clear()
30
+ eventData.dynamicDimensions.clear()
31
+ }
32
+
33
+ @ReactMethod
34
+ fun initDataBundle(jsonString: String?) {
35
+ initialize()
36
+
37
+ try {
38
+ val jsonObject = JSONObject(jsonString)
39
+
40
+ val dataDictionary = jsonObject.optJSONObject("dataDictionary")
41
+ if (dataDictionary != null) {
42
+ val keys = dataDictionary.keys()
43
+ while (keys.hasNext()) {
44
+ val key = keys.next()
45
+ val value = dataDictionary.getString(key)
46
+ eventData.dataBundle.putString(key,value)
47
+ }
68
48
  }
69
- }
70
-
71
- val fact = dimensionObject.optJSONObject("Fact")
72
- if (fact != null) {
73
- val keys = fact.keys()
74
- while (keys.hasNext()) {
75
- val key = keys.next()
76
- val value = fact.getString(key)
77
- if(TagWorks.getInstance().isUseDynamicParameter) {
78
- eventData.setDynamicDimension(key,value.toDouble())
79
- } else {
80
- eventData.setDimension(key.toInt(),value.toDouble())
81
- }
49
+
50
+ val eventDimensions = jsonObject.optJSONArray("eventDimensions")
51
+ if (eventDimensions != null) {
52
+ for (i in 0 until eventDimensions.length()) {
53
+ val dimensionObject = eventDimensions.getJSONObject(i)
54
+
55
+ val general = dimensionObject.optJSONObject("General")
56
+ if (general != null) {
57
+ val keys = general.keys()
58
+ while (keys.hasNext()) {
59
+ val key = keys.next()
60
+ val value = general.getString(key)
61
+ if(TagWorks.getInstance().isUseDynamicParameter) {
62
+ eventData.setDynamicDimension(key,value)
63
+ } else {
64
+ eventData.setDimension(key.toInt(),value)
65
+ }
66
+ }
67
+ }
68
+
69
+ val fact = dimensionObject.optJSONObject("Fact")
70
+ if (fact != null) {
71
+ val keys = fact.keys()
72
+ while (keys.hasNext()) {
73
+ val key = keys.next()
74
+ val value = fact.getString(key)
75
+ if(TagWorks.getInstance().isUseDynamicParameter) {
76
+ eventData.setDynamicDimension(key,value.toDouble())
77
+ } else {
78
+ eventData.setDimension(key.toInt(),value.toDouble())
79
+ }
80
+ }
81
+ }
82
+
83
+ }
82
84
  }
83
- }
85
+ }catch (e: Exception) {
86
+ e.printStackTrace()
87
+ println("Error parsing JSON: ${e.message}")
88
+ }
89
+
90
+ }
91
+ /**
92
+ * DataBundle putString() 함수 - 개별
93
+ */
94
+ @ReactMethod
95
+ fun putString(key:String,value:String){
96
+ eventData.dataBundle.putString(key,value)
97
+ }
98
+
99
+
100
+ @ReactMethod
101
+ fun getDataBundle(callback: Callback) {
102
+ val mDataBundle = Arguments.createMap()
103
+
104
+ val dimensionsArray = Arguments.createArray()
105
+
106
+ for (dimension in eventData.dimensions) {
107
+ val dimensionMap = Arguments.createMap()
108
+ dimensionMap.putInt("index",dimension.index)
109
+ dimensionMap.putString("type",dimension.type.name)
110
+ if (dimension.type == DimensionType.GENERAL_TYPE) dimensionMap.putString("value",dimension.value)
111
+ else dimensionMap.putDouble("numValue",dimension.numValue)
112
+
113
+ dimensionsArray.pushMap(dimensionMap)
114
+ }
115
+
116
+ for (dimension in eventData.dynamicDimensions) {
117
+ val dimensionMap = Arguments.createMap()
118
+ dimensionMap.putString("key",dimension.key)
119
+ dimensionMap.putString("type",dimension.type.name)
120
+ if(dimension.type == DimensionType.GENERAL_TYPE) dimensionMap.putString("value",dimension.value)
121
+ else dimensionMap.putDouble("numValue",dimension.numValue)
84
122
 
123
+ dimensionsArray.pushMap(dimensionMap)
85
124
  }
86
- }
87
- }catch (e: Exception) {
88
- e.printStackTrace()
89
- println("Error parsing JSON: ${e.message}")
125
+
126
+ mDataBundle.putArray("dimensions", dimensionsArray)
127
+
128
+ val bundleMap = Arguments.createMap()
129
+ for (key in eventData.dataBundle.keySet()) {
130
+ bundleMap.putString(key, eventData.dataBundle.get(key) as String)
131
+ }
132
+ mDataBundle.putMap("dataBundle", bundleMap)
133
+ callback.invoke(mDataBundle)
90
134
  }
91
135
 
92
- }
93
- /**
94
- * DataBundle putString() 함수 - 개별
95
- */
96
- @ReactMethod
97
- fun putString(key:String,value:String){
98
- eventData.dataBundle.putString(key,value)
99
- }
136
+ /**
137
+ * dimension 설정
138
+ */
100
139
 
140
+ @ReactMethod
141
+ fun putDimensionWithString(index: Int, value: String) {
142
+ eventData.setDimension(index, value)
143
+ }
101
144
 
102
- @ReactMethod
103
- fun getDataBundle(callback: Callback) {
104
- val mDataBundle = Arguments.createMap()
145
+ @ReactMethod
146
+ fun putDimensionWithDouble(index: Int, value: Double) {
147
+ eventData.setDimension(index, value)
148
+ }
149
+
150
+ @ReactMethod
151
+ fun putDynamicDimensionWithString(key: String, value: String) {
152
+ eventData.setDynamicDimension(key, value)
153
+ }
154
+
155
+ @ReactMethod
156
+ fun putDynamicDimensionWithDouble(key: String, numValue:Double) {
157
+ eventData.setDynamicDimension(key, numValue)
158
+ }
105
159
 
106
- val dimensionsArray = Arguments.createArray()
107
160
 
108
- for (dimension in eventData.dimensions) {
109
- val dimensionMap = Arguments.createMap()
110
- dimensionMap.putInt("index",dimension.index)
111
- dimensionMap.putString("type",dimension.type.name)
112
- if (dimension.type == DimensionType.GENERAL_TYPE) dimensionMap.putString("value",dimension.value)
113
- else dimensionMap.putDouble("numValue",dimension.numValue)
161
+ @ReactMethod
162
+ fun getDimensions(callback: Callback) {
163
+ try {
114
164
 
115
- dimensionsArray.pushMap(dimensionMap)
165
+ val generalDimensions = JSONObject()
166
+ val factDimensions = JSONObject()
167
+
168
+ eventData.dimensions.forEach { dimension ->
169
+ when (dimension.type) {
170
+ DimensionType.GENERAL_TYPE -> generalDimensions.put(dimension.index.toString(),dimension.value)
171
+ DimensionType.FACT_TYPE -> factDimensions.put(dimension.index.toString(),dimension.numValue)
172
+ }
173
+ }
174
+
175
+ eventData.dynamicDimensions.forEach { dimension ->
176
+ when(dimension.type) {
177
+ DimensionType.GENERAL_TYPE ->generalDimensions.put(dimension.key,dimension.value)
178
+ DimensionType.FACT_TYPE -> factDimensions.put(dimension.key,dimension.numValue)
179
+ }
180
+ }
181
+
182
+ val result = JSONObject().apply {
183
+ put("General", generalDimensions)
184
+ put("Fact", factDimensions)
185
+ }
186
+
187
+ val jsonString = result.toString(4)
188
+ callback.invoke(jsonString)
189
+ } catch (e: Exception) {
190
+ e.printStackTrace()
191
+ callback.invoke(null)
192
+ }
116
193
  }
117
194
 
118
- for (dimension in eventData.dynamicDimensions) {
119
- val dimensionMap = Arguments.createMap()
120
- dimensionMap.putString("key",dimension.key)
121
- dimensionMap.putString("type",dimension.type.name)
122
- if(dimension.type == DimensionType.GENERAL_TYPE) dimensionMap.putString("value",dimension.value)
123
- else dimensionMap.putDouble("numValue",dimension.numValue)
195
+ @ReactMethod
196
+ fun getDynamicDimensions(callback: Callback){
197
+ try {
124
198
 
125
- dimensionsArray.pushMap(dimensionMap)
199
+ val generalDimensions = JSONObject()
200
+ val factDimensions = JSONObject()
201
+
202
+ eventData.dimensions.forEach { dimension ->
203
+ when (dimension.type) {
204
+ DimensionType.GENERAL_TYPE -> generalDimensions.put(dimension.index.toString(),dimension.value)
205
+ DimensionType.FACT_TYPE -> factDimensions.put(dimension.index.toString(),dimension.numValue)
206
+ }
207
+ }
208
+
209
+ eventData.dynamicDimensions.forEach { dimension ->
210
+ when(dimension.type) {
211
+ DimensionType.GENERAL_TYPE ->generalDimensions.put(dimension.key,dimension.value)
212
+ DimensionType.FACT_TYPE -> factDimensions.put(dimension.key,dimension.numValue)
213
+ }
214
+ }
215
+
216
+ val result = JSONObject().apply {
217
+ put("General", generalDimensions)
218
+ put("Fact", factDimensions)
219
+ }
220
+
221
+ val jsonString = result.toString(4)
222
+ callback.invoke(jsonString)
223
+ } catch (e: Exception) {
224
+ e.printStackTrace()
225
+ callback.invoke(null)
226
+ }
126
227
  }
127
228
 
128
- mDataBundle.putArray("dimensions", dimensionsArray)
229
+ @ReactMethod
230
+ fun getDimensionsOfArrayIndex(callback: Callback) {
231
+ try {
232
+ val dimensions = JSONArray()
233
+
234
+ eventData.dimensions.forEach { dimension ->
235
+ val dimensionObject = JSONObject()
236
+ if (dimension.type == DimensionType.FACT_TYPE) {
237
+ dimensionObject.put("Fact_${dimension.index}",dimension.numValue)
238
+ } else if (dimension.type == DimensionType.GENERAL_TYPE) {
239
+ dimensionObject.put("General_${dimension.index}",dimension.value)
240
+ }
241
+ dimensions.put(dimensionObject)
242
+ }
129
243
 
130
- val bundleMap = Arguments.createMap()
131
- for (key in eventData.dataBundle.keySet()) {
132
- bundleMap.putString(key, eventData.dataBundle.get(key) as String)
244
+ val jsonString = dimensions.toString(4)
245
+ callback.invoke(jsonString)
246
+ } catch (e:Exception) {
247
+ callback.invoke(null)
248
+ }
133
249
  }
134
- mDataBundle.putMap("dataBundle", bundleMap)
135
- callback.invoke(mDataBundle)
136
- }
137
-
138
- /**
139
- * dimension 설정
140
- */
141
-
142
- @ReactMethod
143
- fun putDimensionWithString(index: Int, value: String) {
144
- eventData.setDimension(index, value)
145
- }
146
-
147
- @ReactMethod
148
- fun putDimensionWithDouble(index: Int, value: Double) {
149
- eventData.setDimension(index, value)
150
- }
151
-
152
- @ReactMethod
153
- fun putDynamicDimensionWithString(key: String, value: String) {
154
- eventData.setDynamicDimension(key, value)
155
- }
156
-
157
- @ReactMethod
158
- fun putDynamicDimensionWithDouble(key: String, numValue:Double) {
159
- eventData.setDynamicDimension(key, numValue)
160
- }
161
-
162
-
163
- @ReactMethod
164
- fun getDimensions(callback: Callback) {
165
- try {
166
-
167
- val generalDimensions = JSONObject()
168
- val factDimensions = JSONObject()
169
-
170
- eventData.dimensions.forEach { dimension ->
171
- when (dimension.type) {
172
- DimensionType.GENERAL_TYPE -> generalDimensions.put(dimension.index.toString(),dimension.value)
173
- DimensionType.FACT_TYPE -> factDimensions.put(dimension.index.toString(),dimension.numValue)
250
+
251
+ @ReactMethod
252
+ fun getDimensionWithString(index: Int, callback: Callback) {
253
+ val mDimension = eventData.dimensions.firstOrNull { it.type == DimensionType.GENERAL_TYPE && it.index == index }
254
+
255
+ if (mDimension != null) {
256
+ callback.invoke(mDimension.value)
257
+ } else {
258
+ callback.invoke(null)
174
259
  }
175
- }
260
+ }
176
261
 
177
- eventData.dynamicDimensions.forEach { dimension ->
178
- when(dimension.type) {
179
- DimensionType.GENERAL_TYPE ->generalDimensions.put(dimension.key,dimension.value)
180
- DimensionType.FACT_TYPE -> factDimensions.put(dimension.key,dimension.numValue)
262
+ @ReactMethod
263
+ fun getDimensionWithDouble(index: Int, callback: Callback) {
264
+ val mDimension = eventData.dimensions.firstOrNull { it.type == DimensionType.FACT_TYPE && it.index == index }
265
+
266
+ if (mDimension != null) {
267
+ callback.invoke(mDimension.numValue)
268
+ } else {
269
+ callback.invoke(null)
181
270
  }
182
- }
183
-
184
- val generalWrapper = JSONObject().apply {
185
- put("General", generalDimensions)
186
- }
187
-
188
- val factWrapper = JSONObject().apply {
189
- put("Fact", factDimensions)
190
- }
191
-
192
- val dimensionsArray = JSONArray().apply {
193
- put(generalWrapper)
194
- put(factWrapper)
195
- }
196
-
197
- val result = JSONObject().apply {
198
- put("Dimensions", dimensionsArray)
199
- }
200
-
201
- val jsonString = result.toString(4)
202
- callback.invoke(jsonString)
203
- } catch (e: Exception) {
204
- e.printStackTrace()
205
- callback.invoke(null)
206
271
  }
207
- }
208
272
 
209
- @ReactMethod
210
- fun getDynamicDimensions(callback: Callback){
211
- try {
273
+ @ReactMethod
274
+ fun getDynamicDimension(key: String,callback: Callback) {
275
+ val mDimension = eventData.dynamicDimensions.firstOrNull { it.key == key }
276
+
277
+ if(mDimension != null) {
278
+ callback.invoke(if(mDimension.type== DimensionType.GENERAL_TYPE)mDimension.value else mDimension.numValue)
279
+ } else {
280
+ callback.invoke(null)
281
+ }
282
+ }
212
283
 
213
- val generalDimensions = JSONObject()
214
- val factDimensions = JSONObject()
284
+ @ReactMethod
285
+ fun getDynamicDimensionsOfArrayIndex(callback: Callback) {
286
+ try {
287
+ val dimensions = JSONArray()
288
+
289
+ eventData.dynamicDimensions.forEach {
290
+ dimension ->
291
+ val dimensionObject = JSONObject()
292
+ if (dimension.type == DimensionType.GENERAL_TYPE) {
293
+ dimensionObject.put(dimension.key,dimension.value)
294
+ }else{
295
+ dimensionObject.put(dimension.key,dimension.numValue)
296
+ }
297
+ dimensions.put(dimensionObject)
298
+ }
215
299
 
216
- eventData.dimensions.forEach { dimension ->
217
- when (dimension.type) {
218
- DimensionType.GENERAL_TYPE -> generalDimensions.put(dimension.index.toString(),dimension.value)
219
- DimensionType.FACT_TYPE -> factDimensions.put(dimension.index.toString(),dimension.numValue)
300
+ val jsonString = dimensions.toString(4)
301
+ callback.invoke(jsonString)
302
+ } catch (e:Exception) {
303
+ callback.invoke(null)
220
304
  }
221
- }
305
+ }
222
306
 
223
- eventData.dynamicDimensions.forEach { dimension ->
224
- when(dimension.type) {
225
- DimensionType.GENERAL_TYPE ->generalDimensions.put(dimension.key,dimension.value)
226
- DimensionType.FACT_TYPE -> factDimensions.put(dimension.key,dimension.numValue)
307
+ /**
308
+ * Dimension 삭제
309
+ */
310
+
311
+ @ReactMethod
312
+ fun removeDimensionInGeneralType(index: Int) {
313
+ val iterator = this.eventData.dimensions.iterator()
314
+ while (iterator.hasNext()) {
315
+ val dimension = iterator.next()
316
+ if (dimension.type == DimensionType.GENERAL_TYPE && dimension.index == index) {
317
+ iterator.remove()
318
+ }
227
319
  }
228
- }
229
-
230
- val generalWrapper = JSONObject().apply {
231
- put("General", generalDimensions)
232
- }
233
-
234
- val factWrapper = JSONObject().apply {
235
- put("Fact", factDimensions)
236
- }
237
-
238
- val dimensionsArray = JSONArray().apply {
239
- put(generalWrapper)
240
- put(factWrapper)
241
- }
242
-
243
- val result = JSONObject().apply {
244
- put("Dimensions", dimensionsArray)
245
- }
246
-
247
- val jsonString = result.toString(4)
248
- callback.invoke(jsonString)
249
- } catch (e: Exception) {
250
- e.printStackTrace()
251
- callback.invoke(null)
252
320
  }
253
- }
254
-
255
- @ReactMethod
256
- fun getDimensionsOfArrayIndex(callback: Callback) {
257
- try {
258
- val dimensions = JSONArray()
259
-
260
- eventData.dimensions.forEach { dimension ->
261
- val dimensionObject = JSONObject()
262
- if (dimension.type == DimensionType.FACT_TYPE) {
263
- dimensionObject.put("Fact_${dimension.index}",dimension.numValue)
264
- } else if (dimension.type == DimensionType.GENERAL_TYPE) {
265
- dimensionObject.put("General_${dimension.index}",dimension.value)
321
+
322
+ @ReactMethod
323
+ fun removeDimensionInFactType(index: Int) {
324
+ val iterator = this.eventData.dimensions.iterator()
325
+ while (iterator.hasNext()) {
326
+ val dimension = iterator.next()
327
+ if (dimension.type == DimensionType.FACT_TYPE && dimension.index == index) {
328
+ iterator.remove()
329
+ }
266
330
  }
267
- dimensions.put(dimensionObject)
268
- }
331
+ }
269
332
 
270
- val jsonString = dimensions.toString(4)
271
- callback.invoke(jsonString)
272
- } catch (e:Exception) {
273
- callback.invoke(null)
333
+ @ReactMethod
334
+ fun removeDynamicDimension(key: String) {
335
+ val iterator = this.eventData.dynamicDimensions.iterator()
336
+ while (iterator.hasNext()) {
337
+ if (iterator.next().key == key) {
338
+ iterator.remove()
339
+ }
340
+ }
274
341
  }
275
- }
276
342
 
277
- @ReactMethod
278
- fun getDimensionWithString(index: Int, callback: Callback) {
279
- val mDimension = eventData.dimensions.firstOrNull { it.type == DimensionType.GENERAL_TYPE && it.index == index }
343
+ @ReactMethod
344
+ fun removeDimensionWithArrayIndex(arrayIndex: Int) {
345
+ this.eventData.dimensions.removeAt(arrayIndex)
346
+ }
280
347
 
281
- if (mDimension != null) {
282
- callback.invoke(mDimension.value)
283
- } else {
284
- callback.invoke(null)
348
+ @ReactMethod
349
+ fun removeDynamicDimensionWithArrayIndex(arrayIndex: Int) {
350
+ this.eventData.dynamicDimensions.removeAt(arrayIndex)
285
351
  }
286
- }
287
352
 
288
- @ReactMethod
289
- fun getDimensionWithDouble(index: Int, callback: Callback) {
290
- val mDimension = eventData.dimensions.firstOrNull { it.type == DimensionType.FACT_TYPE && it.index == index }
353
+ @ReactMethod
354
+ fun removeAllDimension() {
355
+ this.eventData.dimensions.clear()
356
+ this.eventData.dynamicDimensions.clear()
357
+ }
291
358
 
292
- if (mDimension != null) {
293
- callback.invoke(mDimension.numValue)
294
- } else {
295
- callback.invoke(null)
359
+ @ReactMethod
360
+ fun removeAllDynamicDimension() {
361
+ this.eventData.dimensions.clear()
362
+ this.eventData.dynamicDimensions.clear()
296
363
  }
297
- }
298
364
 
299
- @ReactMethod
300
- fun getDynamicDimension(key: String,callback: Callback) {
301
- val mDimension = eventData.dynamicDimensions.firstOrNull { it.key == key }
302
365
 
303
- if(mDimension != null) {
304
- callback.invoke(if(mDimension.type==DimensionType.GENERAL_TYPE)mDimension.value else mDimension.numValue)
305
- } else {
306
- callback.invoke(null)
366
+ @ReactMethod
367
+ fun isParameterEmpty(callback: Callback) {
368
+ callback.invoke(this.eventData.dataBundle.isEmpty)
369
+ }
370
+
371
+ @ReactMethod
372
+ fun isDimensionEmpty(callback: Callback) {
373
+ callback.invoke(this.eventData.dimensions.isEmpty() && this.eventData.dynamicDimensions.isEmpty())
307
374
  }
308
- }
309
-
310
- @ReactMethod
311
- fun getDynamicDimensionsOfArrayIndex(callback: Callback) {
312
- try {
313
- val dimensions = JSONArray()
314
-
315
- eventData.dynamicDimensions.forEach {
316
- dimension ->
317
- val dimensionObject = JSONObject()
318
- if (dimension.type == DimensionType.GENERAL_TYPE) {
319
- dimensionObject.put(dimension.key,dimension.value)
320
- }else{
321
- dimensionObject.put(dimension.key,dimension.numValue)
322
- }
323
- dimensions.put(dimensionObject)
324
- }
325
375
 
326
- val jsonString = dimensions.toString(4)
327
- callback.invoke(jsonString)
328
- } catch (e:Exception) {
329
- callback.invoke(null)
376
+ @ReactMethod
377
+ fun parameterCount(callback: Callback) {
378
+ callback.invoke(this.eventData.dataBundle.size())
330
379
  }
331
- }
332
-
333
- /**
334
- * Dimension 삭제
335
- */
336
-
337
- @ReactMethod
338
- fun removeDimensionInGeneralType(index: Int) {
339
- val iterator = this.eventData.dimensions.iterator()
340
- while (iterator.hasNext()) {
341
- val dimension = iterator.next()
342
- if (dimension.type == DimensionType.GENERAL_TYPE && dimension.index == index) {
343
- iterator.remove()
344
- }
380
+
381
+ @ReactMethod
382
+ fun dimensionCount(callback: Callback) {
383
+ callback.invoke(this.eventData.dimensions.size+this.eventData.dynamicDimensions.size)
345
384
  }
346
- }
347
-
348
- @ReactMethod
349
- fun removeDimensionInFactType(index: Int) {
350
- val iterator = this.eventData.dimensions.iterator()
351
- while (iterator.hasNext()) {
352
- val dimension = iterator.next()
353
- if (dimension.type == DimensionType.FACT_TYPE && dimension.index == index) {
354
- iterator.remove()
355
- }
385
+
386
+
387
+ override fun getConstants(): MutableMap<String, Any> {
388
+ return mutableMapOf(
389
+ "EVENT_TAG_NAME" to DataBundle.EVENT_TAG_NAME,
390
+ "EVENT_TAG_PARAM_PAGE_PATH" to DataBundle.EVENT_TAG_PARAM_PAGE_PATH,
391
+ "EVENT_TAG_PARAM_TITLE" to DataBundle.EVENT_TAG_PARAM_TITLE,
392
+ "EVENT_TAG_PARAM_KEYWORD" to DataBundle.EVENT_TAG_PARAM_KEYWORD,
393
+ "EVENT_TAG_PARAM_CUSTOM_PATH" to DataBundle.EVENT_TAG_PARAM_CUSTOM_PATH
394
+ )
356
395
  }
357
- }
358
-
359
- @ReactMethod
360
- fun removeDynamicDimension(key: String) {
361
- val iterator = this.eventData.dynamicDimensions.iterator()
362
- while (iterator.hasNext()) {
363
- if (iterator.next().key == key) {
364
- iterator.remove()
365
- }
396
+
397
+ companion object{
398
+ const val TAG="DataBundleModule"
366
399
  }
367
- }
368
-
369
- @ReactMethod
370
- fun removeDimensionWithArrayIndex(arrayIndex: Int) {
371
- this.eventData.dimensions.removeAt(arrayIndex)
372
- }
373
-
374
- @ReactMethod
375
- fun removeDynamicDimensionWithArrayIndex(arrayIndex: Int) {
376
- this.eventData.dynamicDimensions.removeAt(arrayIndex)
377
- }
378
-
379
- @ReactMethod
380
- fun removeAllDimension() {
381
- this.eventData.dimensions.clear()
382
- this.eventData.dynamicDimensions.clear()
383
- }
384
-
385
- @ReactMethod
386
- fun removeAllDynamicDimension() {
387
- this.eventData.dimensions.clear()
388
- this.eventData.dynamicDimensions.clear()
389
- }
390
-
391
-
392
- @ReactMethod
393
- fun isParameterEmpty(callback: Callback) {
394
- callback.invoke(this.eventData.dataBundle.isEmpty)
395
- }
396
-
397
- @ReactMethod
398
- fun isDimensionEmpty(callback: Callback) {
399
- callback.invoke(this.eventData.dimensions.isEmpty() && this.eventData.dynamicDimensions.isEmpty())
400
- }
401
-
402
- @ReactMethod
403
- fun parameterCount(callback: Callback) {
404
- callback.invoke(this.eventData.dataBundle.size())
405
- }
406
-
407
- @ReactMethod
408
- fun dimensionCount(callback: Callback) {
409
- callback.invoke(this.eventData.dimensions.size+this.eventData.dynamicDimensions.size)
410
- }
411
-
412
-
413
- override fun getConstants(): MutableMap<String, Any> {
414
- return mutableMapOf(
415
- "EVENT_TAG_NAME" to DataBundle.EVENT_TAG_NAME,
416
- "EVENT_TAG_PARAM_PAGE_PATH" to DataBundle.EVENT_TAG_PARAM_PAGE_PATH,
417
- "EVENT_TAG_PARAM_TITLE" to DataBundle.EVENT_TAG_PARAM_TITLE,
418
- "EVENT_TAG_PARAM_KEYWORD" to DataBundle.EVENT_TAG_PARAM_KEYWORD,
419
- "EVENT_TAG_PARAM_CUSTOM_PATH" to DataBundle.EVENT_TAG_PARAM_CUSTOM_PATH
420
- )
421
- }
422
-
423
- companion object{
424
- const val TAG="DataBundleModule"
425
- }
426
400
  }