react-native-moengage 11.0.0 → 11.1.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.
- package/CHANGELOG.md +8 -0
- package/ReactNativeMoEngage.podspec +1 -1
- package/android/build.gradle +3 -3
- package/android/src/main/java/com/moengage/react/MoEReactBridgeHandler.kt +270 -257
- package/android/src/newarch/com/moengage/react/MoEReactBridge.kt +8 -0
- package/iOS/MoEReactBridge/MoEReactBridge.mm +8 -0
- package/iOS/MoEReactBridge/MoEReactNativeHandler.h +2 -0
- package/iOS/MoEReactBridge/MoEReactNativeHandler.m +22 -0
- package/package.json +1 -1
- package/src/NativeMoEngage.ts +13 -0
- package/src/index.ts +28 -4
- package/src/models/MoEInAppRules.ts +20 -0
- package/src/models/MoESelfHandledCampaign.ts +5 -2
- package/src/models/MoESelfHandledCampaignsData.ts +15 -0
- package/src/moeParser/MoEInAppParser.ts +42 -3
- package/src/utils/MoEConstants.ts +6 -0
- package/src/utils/MoECoreHandler.ts +15 -0
- package/src/utils/MoEJsonBuilder.ts +32 -12
package/CHANGELOG.md
CHANGED
|
@@ -15,7 +15,7 @@ Pod::Spec.new do |s|
|
|
|
15
15
|
s.platforms = { :ios => "11.0", :tvos => "11.0" }
|
|
16
16
|
s.source_files = 'iOS/MoEReactBridge/**/*.{h,m,mm}'
|
|
17
17
|
s.dependency 'React'
|
|
18
|
-
s.dependency 'MoEngagePluginBase','5.
|
|
18
|
+
s.dependency 'MoEngagePluginBase','5.1.0'
|
|
19
19
|
s.ios.dependency 'MoEngage-iOS-SDK/RichNotification'
|
|
20
20
|
|
|
21
21
|
s.prepare_command = <<-CMD
|
package/android/build.gradle
CHANGED
|
@@ -20,9 +20,9 @@ rootProject.allprojects {
|
|
|
20
20
|
|
|
21
21
|
ext {
|
|
22
22
|
//dependency version
|
|
23
|
-
moengageCoreVersion = "13.
|
|
24
|
-
moengageInAppVersion = "8.
|
|
25
|
-
basePluginVersion = "4.
|
|
23
|
+
moengageCoreVersion = "13.05.00"
|
|
24
|
+
moengageInAppVersion = "8.6.0"
|
|
25
|
+
basePluginVersion = "4.2.0"
|
|
26
26
|
//build versions
|
|
27
27
|
minimumVersion = 21
|
|
28
28
|
compileVersion = 34
|
|
@@ -11,260 +11,273 @@
|
|
|
11
11
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
-
package com.moengage.react
|
|
15
|
-
|
|
16
|
-
import android.content.Context
|
|
17
|
-
import com.facebook.react.bridge.Promise
|
|
18
|
-
import com.facebook.react.bridge.ReactApplicationContext
|
|
19
|
-
import com.moengage.core.LogLevel
|
|
20
|
-
import com.moengage.core.MoECoreHelper
|
|
21
|
-
import com.moengage.core.internal.logger.Logger
|
|
22
|
-
import com.moengage.core.listeners.AppBackgroundListener
|
|
23
|
-
import com.moengage.plugin.base.internal.PluginHelper
|
|
24
|
-
import com.moengage.plugin.base.internal.
|
|
25
|
-
import com.moengage.plugin.base.internal.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
}
|
|
14
|
+
package com.moengage.react
|
|
15
|
+
|
|
16
|
+
import android.content.Context
|
|
17
|
+
import com.facebook.react.bridge.Promise
|
|
18
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
19
|
+
import com.moengage.core.LogLevel
|
|
20
|
+
import com.moengage.core.MoECoreHelper
|
|
21
|
+
import com.moengage.core.internal.logger.Logger
|
|
22
|
+
import com.moengage.core.listeners.AppBackgroundListener
|
|
23
|
+
import com.moengage.plugin.base.internal.PluginHelper
|
|
24
|
+
import com.moengage.plugin.base.internal.selfHandledInAppsToJson
|
|
25
|
+
import com.moengage.plugin.base.internal.setEventEmitter
|
|
26
|
+
import com.moengage.plugin.base.internal.userDeletionDataToJson
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Class to handle all the request from the [MoEReactBridge] from both old and new arch
|
|
30
|
+
*
|
|
31
|
+
* @author Abhishek Kumar
|
|
32
|
+
* @since Todo: Add Version
|
|
33
|
+
*/
|
|
34
|
+
internal class MoEReactBridgeHandler(private val reactContext: ReactApplicationContext) {
|
|
35
|
+
|
|
36
|
+
private val tag = "${MODULE_TAG}MoEReactBridgeHandler"
|
|
37
|
+
|
|
38
|
+
private val context: Context = reactContext.applicationContext
|
|
39
|
+
private val pluginHelper = PluginHelper()
|
|
40
|
+
|
|
41
|
+
private val backgroundStateListener =
|
|
42
|
+
AppBackgroundListener { _, _ -> pluginHelper.onFrameworkDetached() }
|
|
43
|
+
|
|
44
|
+
fun getName() = NAME
|
|
45
|
+
|
|
46
|
+
fun setAppStatus(payload: String) {
|
|
47
|
+
try {
|
|
48
|
+
Logger.print { "$tag setAppStatus() : Payload: $payload" }
|
|
49
|
+
pluginHelper.setAppStatus(context, payload)
|
|
50
|
+
} catch (t: Throwable) {
|
|
51
|
+
Logger.print(LogLevel.ERROR, t) { "$tag setAppStatus() : " }
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
fun trackEvent(payload: String) {
|
|
56
|
+
try {
|
|
57
|
+
Logger.print { "$tag trackEvent() : Payload: $payload" }
|
|
58
|
+
pluginHelper.trackEvent(context, payload)
|
|
59
|
+
} catch (t: Throwable) {
|
|
60
|
+
Logger.print(LogLevel.ERROR, t) { "$tag trackEvent() : " }
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
fun setUserAttribute(payload: String) {
|
|
65
|
+
try {
|
|
66
|
+
Logger.print { "$tag setUserAttribute() : Payload: $payload" }
|
|
67
|
+
pluginHelper.setUserAttribute(context, payload)
|
|
68
|
+
} catch (t: Throwable) {
|
|
69
|
+
Logger.print(LogLevel.ERROR, t) { "$tag setUserAttribute() : " }
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
fun logout(payload: String) {
|
|
74
|
+
try {
|
|
75
|
+
Logger.print { "$tag logout() : $payload" }
|
|
76
|
+
pluginHelper.logout(context, payload)
|
|
77
|
+
} catch (t: Throwable) {
|
|
78
|
+
Logger.print(LogLevel.ERROR, t) { "$tag logout() : " }
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
fun setAlias(payload: String) {
|
|
83
|
+
try {
|
|
84
|
+
Logger.print { "$tag setAlias() : Payload: $payload" }
|
|
85
|
+
pluginHelper.setAlias(context, payload)
|
|
86
|
+
} catch (t: Throwable) {
|
|
87
|
+
Logger.print(LogLevel.ERROR, t) { "$tag setAlias() : " }
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
fun setAppContext(payload: String) {
|
|
92
|
+
try {
|
|
93
|
+
Logger.print { "$tag setAppContext() : Payload: $payload" }
|
|
94
|
+
pluginHelper.setAppContext(context, payload)
|
|
95
|
+
} catch (t: Throwable) {
|
|
96
|
+
Logger.print(LogLevel.ERROR, t) { "$tag setAppContext() : " }
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
fun resetAppContext(payload: String) {
|
|
101
|
+
try {
|
|
102
|
+
Logger.print { "$tag resetAppContext() : $payload" }
|
|
103
|
+
pluginHelper.resetAppContext(context, payload)
|
|
104
|
+
} catch (t: Throwable) {
|
|
105
|
+
Logger.print(LogLevel.ERROR, t) { "$tag resetAppContext() : " }
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
fun showInApp(payload: String) {
|
|
110
|
+
try {
|
|
111
|
+
Logger.print { "$tag showInApp() : $payload" }
|
|
112
|
+
pluginHelper.showInApp(context, payload)
|
|
113
|
+
} catch (t: Throwable) {
|
|
114
|
+
Logger.print(LogLevel.ERROR, t) { "$tag showInApp() : " }
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
fun getSelfHandledInApp(payload: String) {
|
|
119
|
+
try {
|
|
120
|
+
Logger.print { "$tag getSelfHandledInApp() : $payload" }
|
|
121
|
+
pluginHelper.getSelfHandledInApp(context, payload)
|
|
122
|
+
} catch (t: Throwable) {
|
|
123
|
+
Logger.print(LogLevel.ERROR, t) { "$tag getSelfHandledInApp() : " }
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
fun passPushToken(payload: String) {
|
|
128
|
+
try {
|
|
129
|
+
Logger.print { "$tag passPushToken() : $payload" }
|
|
130
|
+
pluginHelper.passPushToken(context, payload)
|
|
131
|
+
} catch (t: Throwable) {
|
|
132
|
+
Logger.print(LogLevel.ERROR, t) { "$tag passPushToken() : " }
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
fun passPushPayload(payload: String) {
|
|
137
|
+
try {
|
|
138
|
+
Logger.print { "$tag passPushPayload() : $payload" }
|
|
139
|
+
pluginHelper.passPushPayload(context, payload)
|
|
140
|
+
} catch (t: Throwable) {
|
|
141
|
+
Logger.print(LogLevel.ERROR, t) { "$tag passPushPayload() : " }
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
fun initialize(payload: String) {
|
|
146
|
+
try {
|
|
147
|
+
Logger.print { "$tag initialize() : $payload" }
|
|
148
|
+
pluginHelper.initialise(payload)
|
|
149
|
+
setEventEmitter(EventEmitterImpl(reactContext))
|
|
150
|
+
if (GlobalCache.lifecycleAwareCallbackEnabled) {
|
|
151
|
+
MoECoreHelper.addAppBackgroundListener(backgroundStateListener)
|
|
152
|
+
}
|
|
153
|
+
} catch (t: Throwable) {
|
|
154
|
+
Logger.print(LogLevel.ERROR, t) { "$tag initialize() : " }
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
fun selfHandledCallback(payload: String) {
|
|
159
|
+
try {
|
|
160
|
+
Logger.print { "$tag selfHandledCallback() : $payload" }
|
|
161
|
+
pluginHelper.selfHandledCallback(context, payload)
|
|
162
|
+
} catch (t: Throwable) {
|
|
163
|
+
Logger.print(LogLevel.ERROR, t) { "$tag selfHandledCallback() : " }
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
fun optOutTracking(payload: String) {
|
|
168
|
+
try {
|
|
169
|
+
pluginHelper.optOutTracking(context, payload)
|
|
170
|
+
} catch (t: Throwable) {
|
|
171
|
+
Logger.print(LogLevel.ERROR, t) { "$tag optOutTracking() : " }
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
fun updateSdkState(payload: String) {
|
|
176
|
+
try {
|
|
177
|
+
Logger.print { "$tag updateSdkState() : $payload" }
|
|
178
|
+
pluginHelper.storeFeatureStatus(context, payload)
|
|
179
|
+
} catch (t: Throwable) {
|
|
180
|
+
Logger.print(LogLevel.ERROR, t) { "$tag updateSdkState() : " }
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
fun onOrientationChanged() {
|
|
185
|
+
try {
|
|
186
|
+
Logger.print { "$tag onOrientationChanged() : " }
|
|
187
|
+
pluginHelper.onConfigurationChanged()
|
|
188
|
+
} catch (t: Throwable) {
|
|
189
|
+
Logger.print(LogLevel.ERROR, t) { "$tag onOrientationChanged() : " }
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
fun deviceIdentifierTrackingStatusUpdate(payload: String) {
|
|
194
|
+
try {
|
|
195
|
+
Logger.print { "$tag deviceIdentifierTrackingStatusUpdate() : $payload" }
|
|
196
|
+
pluginHelper.deviceIdentifierTrackingStatusUpdate(context, payload)
|
|
197
|
+
} catch (t: Throwable) {
|
|
198
|
+
Logger.print(LogLevel.ERROR, t) { "$tag deviceIdentifierTrackingStatusUpdate() : " }
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
fun setupNotificationChannels() {
|
|
203
|
+
try {
|
|
204
|
+
Logger.print { "$tag setupNotificationChannels() : " }
|
|
205
|
+
pluginHelper.setUpNotificationChannels(context)
|
|
206
|
+
} catch (t: Throwable) {
|
|
207
|
+
Logger.print(LogLevel.ERROR, t) { "$tag setupNotificationChannel() :" }
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
fun navigateToSettings() {
|
|
212
|
+
try {
|
|
213
|
+
Logger.print { "$tag navigateToSettings() : " }
|
|
214
|
+
pluginHelper.navigateToSettings(context)
|
|
215
|
+
} catch (t: Throwable) {
|
|
216
|
+
Logger.print(LogLevel.ERROR, t) { "$tag navigateToSettings() :" }
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
fun requestPushPermission() {
|
|
221
|
+
try {
|
|
222
|
+
Logger.print { "$tag requestPushPermission() : " }
|
|
223
|
+
pluginHelper.requestPushPermission(context)
|
|
224
|
+
} catch (t: Throwable) {
|
|
225
|
+
Logger.print(LogLevel.ERROR, t) { "$tag requestPushPermission() :" }
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
fun permissionResponse(payload: String) {
|
|
230
|
+
try {
|
|
231
|
+
Logger.print { "$tag permissionResponse() : Payload: $payload" }
|
|
232
|
+
pluginHelper.permissionResponse(context, payload)
|
|
233
|
+
} catch (t: Throwable) {
|
|
234
|
+
Logger.print(LogLevel.ERROR, t) { "$tag permissionResponse() :" }
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
fun updatePushPermissionRequestCount(payload: String) {
|
|
239
|
+
try {
|
|
240
|
+
Logger.print { "$tag updatePushPermissionRequestCount() : Payload: $payload" }
|
|
241
|
+
pluginHelper.updatePushPermissionRequestCount(context, payload)
|
|
242
|
+
} catch (t: Throwable) {
|
|
243
|
+
Logger.print(LogLevel.ERROR, t) { "$tag updatePushPermissionRequestCount() :" }
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
fun deleteUser(payload: String, promise: Promise) {
|
|
248
|
+
try {
|
|
249
|
+
Logger.print { "$tag deleteUser() : Payload: $payload" }
|
|
250
|
+
pluginHelper.deleteUser(context, payload) { userDeletionData ->
|
|
251
|
+
promise.resolve(userDeletionDataToJson(userDeletionData).toString())
|
|
252
|
+
}
|
|
253
|
+
} catch (t: Throwable) {
|
|
254
|
+
Logger.print(LogLevel.ERROR, t) { "$tag deleteUser() :" }
|
|
255
|
+
promise.reject(t)
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
fun showNudge(payload: String) {
|
|
260
|
+
try {
|
|
261
|
+
Logger.print { "$tag showNudge() : Payload: $payload" }
|
|
262
|
+
pluginHelper.showNudge(context, payload)
|
|
263
|
+
} catch (t: Throwable) {
|
|
264
|
+
Logger.print(LogLevel.ERROR, t) { "$tag showNudge() :" }
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
companion object {
|
|
269
|
+
const val NAME = "MoEReactBridge"
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
fun getSelfHandledInApps(payload: String, promise: Promise) {
|
|
273
|
+
try {
|
|
274
|
+
Logger.print { "$tag getSelfHandledInApps() : Payload: $payload" }
|
|
275
|
+
pluginHelper.getSelfHandledInApps(context, payload) { data ->
|
|
276
|
+
promise.resolve(selfHandledInAppsToJson(data).toString())
|
|
277
|
+
}
|
|
278
|
+
} catch (t: Throwable) {
|
|
279
|
+
Logger.print(LogLevel.ERROR, t) { "$tag getSelfHandledInApps() :" }
|
|
280
|
+
promise.reject(t)
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
@@ -140,4 +140,12 @@ class MoEReactBridge(reactContext: ReactApplicationContext) : NativeMoEngageSpec
|
|
|
140
140
|
override fun registerForPush() {
|
|
141
141
|
// iOS only
|
|
142
142
|
}
|
|
143
|
+
|
|
144
|
+
override fun getSelfHandledInApps(payload: String, promise: Promise) {
|
|
145
|
+
bridgeHandler.getSelfHandledInApps(payload, promise)
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
override fun registerForProvisionalPush() {
|
|
149
|
+
//iOS only
|
|
150
|
+
}
|
|
143
151
|
}
|
|
@@ -118,6 +118,10 @@ RCT_EXPORT_METHOD(registerForPush) {
|
|
|
118
118
|
[[MoEReactNativeHandler sharedInstance] registerForPush];
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
+
RCT_EXPORT_METHOD(registerForProvisionalPush) {
|
|
122
|
+
[[MoEReactNativeHandler sharedInstance] registerForProvisionalPush];
|
|
123
|
+
}
|
|
124
|
+
|
|
121
125
|
#pragma mark Show InApp
|
|
122
126
|
|
|
123
127
|
RCT_EXPORT_METHOD(showInApp:(NSString *)payload) {
|
|
@@ -130,6 +134,10 @@ RCT_EXPORT_METHOD(getSelfHandledInApp:(NSString *)payload) {
|
|
|
130
134
|
[[MoEReactNativeHandler sharedInstance] getSelfHandledInApp:payload];
|
|
131
135
|
}
|
|
132
136
|
|
|
137
|
+
RCT_EXPORT_METHOD(getSelfHandledInApps:(NSString *)payload resolve:(RCTPromiseResolveBlock) resolve reject:(RCTPromiseRejectBlock)reject) {
|
|
138
|
+
[[MoEReactNativeHandler sharedInstance] getSelfHandledInApps:payload resolve:resolve reject:reject];
|
|
139
|
+
}
|
|
140
|
+
|
|
133
141
|
RCT_EXPORT_METHOD(updateSelfHandledInAppStatus:(NSString *)payload) {
|
|
134
142
|
[[MoEReactNativeHandler sharedInstance] updateSelfHandledInAppStatus:payload];
|
|
135
143
|
}
|
|
@@ -27,10 +27,12 @@
|
|
|
27
27
|
-(void)showInApp:(NSString *)payload;
|
|
28
28
|
-(void)showNudge:(NSString *)payload ;
|
|
29
29
|
-(void)getSelfHandledInApp:(NSString *)payload;
|
|
30
|
+
-(void)getSelfHandledInApps:(NSString *)payload resolve:(RCTPromiseResolveBlock) resolve reject:(RCTPromiseRejectBlock)reject;
|
|
30
31
|
-(void)updateSelfHandledInAppStatus:(NSString *)payload;
|
|
31
32
|
-(void)setAppContext:(NSString *)payload;
|
|
32
33
|
-(void)resetAppContext:(NSString *)payload;
|
|
33
34
|
-(void)logout:(NSString *)payload;
|
|
34
35
|
-(void)optOutDataTracking:(NSString *)payload;
|
|
35
36
|
-(void)updateSdkState:(NSString *)payload;
|
|
37
|
+
-(void)registerForProvisionalPush;
|
|
36
38
|
@end
|
|
@@ -66,6 +66,14 @@
|
|
|
66
66
|
[[MoEngagePluginBridge sharedInstance] registerForPush];
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
+
-(void)registerForProvisionalPush {
|
|
70
|
+
if (@available(iOS 12, *)) {
|
|
71
|
+
[[MoEngagePluginBridge sharedInstance] registerForProvisionalPush];
|
|
72
|
+
} else {
|
|
73
|
+
NSLog(@"registerForProvisionalPush is not available below iOS 12.");
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
69
77
|
#pragma mark Show InApp
|
|
70
78
|
-(void)showInApp:(NSString *)payload {
|
|
71
79
|
NSDictionary* jsonPayload = [MoEngageReactUtils getJSONRepresentation:payload];
|
|
@@ -78,6 +86,20 @@
|
|
|
78
86
|
[[MoEngagePluginBridge sharedInstance] getSelfHandledInApp:jsonPayload];
|
|
79
87
|
}
|
|
80
88
|
|
|
89
|
+
-(void)getSelfHandledInApps:(NSString *)payload resolve:(RCTPromiseResolveBlock) resolve reject:(RCTPromiseRejectBlock)reject {
|
|
90
|
+
NSDictionary* jsonPayload = [MoEngageReactUtils getJSONRepresentation:payload];
|
|
91
|
+
[[MoEngagePluginBridge sharedInstance] getSelfHandledInApps:jsonPayload completionBlock:^(NSDictionary<NSString *,id> * _Nonnull campaignPayload) {
|
|
92
|
+
NSError *err;
|
|
93
|
+
NSData * jsonData = [NSJSONSerialization dataWithJSONObject:campaignPayload options:0 error:&err];
|
|
94
|
+
if (jsonData) {
|
|
95
|
+
NSString *strPayload = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
|
|
96
|
+
resolve(strPayload);
|
|
97
|
+
} else {
|
|
98
|
+
reject(@"Error", @"Error in parsing Self Handled Campaign Payload", [NSError errorWithDomain:@"" code:400 userInfo:@{@"Error reason": @"Error in parsing Self Handled Campaign Payload"}]);
|
|
99
|
+
}
|
|
100
|
+
}];
|
|
101
|
+
}
|
|
102
|
+
|
|
81
103
|
-(void)updateSelfHandledInAppStatus:(NSString *)payload {
|
|
82
104
|
NSDictionary* jsonPayload = [MoEngageReactUtils getJSONRepresentation:payload];
|
|
83
105
|
[[MoEngagePluginBridge sharedInstance] updateSelfHandledImpression:jsonPayload];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-moengage",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.1.0",
|
|
4
4
|
"description": "MoEngage is a mobile marketing automation company. This react-native SDK helps you track events, trigger smart notifications and in-apps, provides a drop-in Inbox Controller for notifications.",
|
|
5
5
|
"main": "src/index.ts",
|
|
6
6
|
"files": [
|
package/src/NativeMoEngage.ts
CHANGED
|
@@ -76,6 +76,13 @@ export interface Spec extends TurboModule {
|
|
|
76
76
|
*/
|
|
77
77
|
getSelfHandledInApp: (payload: string) => void;
|
|
78
78
|
|
|
79
|
+
/**
|
|
80
|
+
* Call this method to get the multiple eligible Self Handled Campaigns.
|
|
81
|
+
* @param payload : Stringified JSON payload
|
|
82
|
+
* @returns Stringified list of Self Handled campaigns
|
|
83
|
+
*/
|
|
84
|
+
getSelfHandledInApps: (payload: string) => Promise<string>;
|
|
85
|
+
|
|
79
86
|
/**
|
|
80
87
|
* Call this method to update the impressions of self handled inapps.
|
|
81
88
|
*
|
|
@@ -192,6 +199,12 @@ export interface Spec extends TurboModule {
|
|
|
192
199
|
/// ios specific
|
|
193
200
|
registerForPush: () => void;
|
|
194
201
|
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Registers for iOS Provisional Push.
|
|
205
|
+
*/
|
|
206
|
+
registerForProvisionalPush: () => void;
|
|
207
|
+
|
|
195
208
|
addListener: (eventType: string) => void;
|
|
196
209
|
removeListeners: (count: number) => void;
|
|
197
210
|
}
|
package/src/index.ts
CHANGED
|
@@ -58,6 +58,7 @@ import { getUserDeletionData } from "../src/moeParser/MoEngagePayloadParser";
|
|
|
58
58
|
import { MoEngageNudgePosition } from "../src/models/MoEngageNudgePosition";
|
|
59
59
|
import MoEAnalyticsConfig from "../src/models/MoEAnalyticsConfig";
|
|
60
60
|
import { MoESupportedAttributes } from "./models/MoESupportedAttributes";
|
|
61
|
+
import * as MoECoreHandler from "./utils/MoECoreHandler";
|
|
61
62
|
|
|
62
63
|
const PLATFORM_IOS = "ios";
|
|
63
64
|
const PLATFORM_ANDROID = "android";
|
|
@@ -384,7 +385,7 @@ var ReactMoE = {
|
|
|
384
385
|
|
|
385
386
|
/**
|
|
386
387
|
* Call this method when you show the self handled in-app so we can update impressions.
|
|
387
|
-
* @param {MoESelfHandledCampaignData}
|
|
388
|
+
* @param {MoESelfHandledCampaignData}inAppCampaign : campaign information object
|
|
388
389
|
*/
|
|
389
390
|
selfHandledShown: function (inAppCampaign: MoESelfHandledCampaignData) {
|
|
390
391
|
if (!(inAppCampaign instanceof MoESelfHandledCampaignData)) {
|
|
@@ -397,7 +398,7 @@ var ReactMoE = {
|
|
|
397
398
|
|
|
398
399
|
/**
|
|
399
400
|
* Call this method to track when self handled in app widget(other than Primary Widget) is clicked.
|
|
400
|
-
* @param {MoESelfHandledCampaignData}
|
|
401
|
+
* @param {MoESelfHandledCampaignData}moEClickData : campaign information object
|
|
401
402
|
*/
|
|
402
403
|
selfHandledClicked: function (moEClickData: MoESelfHandledCampaignData) {
|
|
403
404
|
if (!(moEClickData instanceof MoESelfHandledCampaignData)) {
|
|
@@ -410,7 +411,7 @@ var ReactMoE = {
|
|
|
410
411
|
|
|
411
412
|
/**
|
|
412
413
|
* Call this method to track dismiss actions on the inApp.
|
|
413
|
-
* @param {MoESelfHandledCampaignData}
|
|
414
|
+
* @param {MoESelfHandledCampaignData}inAppCampaign : campaign information object
|
|
414
415
|
*/
|
|
415
416
|
selfHandledDismissed: function (inAppCampaign: MoESelfHandledCampaignData) {
|
|
416
417
|
if (!(inAppCampaign instanceof MoESelfHandledCampaignData)) {
|
|
@@ -423,7 +424,7 @@ var ReactMoE = {
|
|
|
423
424
|
|
|
424
425
|
/**
|
|
425
426
|
* Call this method to the current context for inApp module.
|
|
426
|
-
* @param
|
|
427
|
+
* @param{Array{String}}contexts : Name of all the contexts
|
|
427
428
|
*/
|
|
428
429
|
setCurrentContext: function (contexts: Array<String>) {
|
|
429
430
|
if (!MoEHelper.validateArrayOfString(contexts)) {
|
|
@@ -726,6 +727,29 @@ var ReactMoE = {
|
|
|
726
727
|
|
|
727
728
|
return new UserDeletionData(new MoEAccountMeta(moeAppId), false)
|
|
728
729
|
},
|
|
730
|
+
|
|
731
|
+
/**
|
|
732
|
+
* Call this method to get the multiple self handled campaigns.
|
|
733
|
+
* @since TODO
|
|
734
|
+
*/
|
|
735
|
+
getSelfHandledInApps: async function () {
|
|
736
|
+
MoEngageLogger.verbose("Will try to fetch multiple self handled inapps", moeAppId);
|
|
737
|
+
return await MoECoreHandler.getSelfHandledInApps(moeAppId);
|
|
738
|
+
},
|
|
739
|
+
|
|
740
|
+
/**
|
|
741
|
+
* Call this method to register for provisional push notification in iOS
|
|
742
|
+
* Note: This API is only for iOS platform and is a no-operation method for other plaforms.
|
|
743
|
+
* @since TODO
|
|
744
|
+
*/
|
|
745
|
+
registerForProvisionalPush: function () {
|
|
746
|
+
if (Platform.OS == PLATFORM_IOS) {
|
|
747
|
+
MoEngageLogger.verbose("Will call registerForProvisionalPush");
|
|
748
|
+
MoEReactBridge.registerForProvisionalPush();
|
|
749
|
+
} else {
|
|
750
|
+
MoEngageLogger.debug("This api is not supported on Android platform.");
|
|
751
|
+
}
|
|
752
|
+
},
|
|
729
753
|
};
|
|
730
754
|
|
|
731
755
|
export {
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DisplayRules for Campaign
|
|
3
|
+
* @since TODO
|
|
4
|
+
*/
|
|
5
|
+
export default class MoEInAppRules {
|
|
6
|
+
/**
|
|
7
|
+
* Screenname for which InApp was configured to be shown.
|
|
8
|
+
*/
|
|
9
|
+
screenName: string | null
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* contexts for which InApp was configured to be shown.
|
|
13
|
+
*/
|
|
14
|
+
contexts: Array<string>
|
|
15
|
+
|
|
16
|
+
constructor(screenName: string, contexts: Array<string> = []) {
|
|
17
|
+
this.screenName = screenName;
|
|
18
|
+
this.contexts = contexts;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
import MoEInAppRules from "../models/MoEInAppRules";
|
|
2
|
+
|
|
1
3
|
export default class MoESelfHandledCampaign {
|
|
2
4
|
payload: string;
|
|
3
5
|
dismissInterval: Number;
|
|
6
|
+
displayRules: MoEInAppRules
|
|
4
7
|
|
|
5
|
-
constructor(payload: string, dismissInterval: Number) {
|
|
8
|
+
constructor(payload: string, dismissInterval: Number, displayRules: MoEInAppRules) {
|
|
6
9
|
this.payload = payload;
|
|
7
10
|
this.dismissInterval = dismissInterval;
|
|
11
|
+
this.displayRules = displayRules;
|
|
8
12
|
}
|
|
9
|
-
|
|
10
13
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import MoEAccountMeta from "./MoEAccountMeta";
|
|
2
|
+
import MoESelfHandledCampaignData from "./MoESelfHandledCampaignData";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Model for Multiple SelfHandled Data
|
|
6
|
+
*/
|
|
7
|
+
export default class MoESelfHandledCampaignsData {
|
|
8
|
+
accountMeta: MoEAccountMeta;
|
|
9
|
+
campaigns: Array<MoESelfHandledCampaignData>
|
|
10
|
+
|
|
11
|
+
constructor(accountMeta: MoEAccountMeta, campaigns: Array<MoESelfHandledCampaignData>) {
|
|
12
|
+
this.accountMeta = accountMeta;
|
|
13
|
+
this.campaigns = campaigns;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -5,8 +5,11 @@ import MoEClickData from "../models/MoEClickData";
|
|
|
5
5
|
import MoEInAppCustomAction from "../models/MoEInAppCustomAction";
|
|
6
6
|
import MoEInAppData from "../models/MoEInAppData";
|
|
7
7
|
import MoEInAppNavigation from "../models/MoEInAppNavigation";
|
|
8
|
+
import MoEInAppRules from "../models/MoEInAppRules";
|
|
8
9
|
import MoESelfHandledCampaign from "../models/MoESelfHandledCampaign";
|
|
9
10
|
import MoESelfHandledCampaignData from "../models/MoESelfHandledCampaignData";
|
|
11
|
+
import MoESelfHandledCampaignsData from "../models/MoESelfHandledCampaignsData";
|
|
12
|
+
|
|
10
13
|
import {
|
|
11
14
|
ACTION_TYPE,
|
|
12
15
|
FORMATTED_CAMPAIGN_ID,
|
|
@@ -24,7 +27,12 @@ import {
|
|
|
24
27
|
MOE_PAYLOAD,
|
|
25
28
|
MOE_PLATFORM,
|
|
26
29
|
MOE_SELF_HANDLED,
|
|
27
|
-
MOE_NAVIGATION_VALUE
|
|
30
|
+
MOE_NAVIGATION_VALUE,
|
|
31
|
+
MOE_INAPP_DISPLAY_RULES,
|
|
32
|
+
MOE_INAPP_SCREEN_NAME,
|
|
33
|
+
MOE_INAPP_CONTEXTS,
|
|
34
|
+
MOE_DATA,
|
|
35
|
+
ACCOUNT_META
|
|
28
36
|
} from "../utils/MoEConstants";
|
|
29
37
|
import { isValidObject } from "../utils/MoEHelper";
|
|
30
38
|
import { getMoEAccountMeta } from "./MoEngagePayloadParser";
|
|
@@ -64,7 +72,19 @@ function getMoESelfHandledCampaign(json: { [k: string]: any }) {
|
|
|
64
72
|
var selfHandled = json[MOE_SELF_HANDLED];
|
|
65
73
|
var payload = selfHandled[MOE_PAYLOAD];
|
|
66
74
|
var dismissInterval = selfHandled[MOE_DISMISSINTERVAL];
|
|
67
|
-
|
|
75
|
+
let displayRulesPayload = selfHandled[MOE_INAPP_DISPLAY_RULES];
|
|
76
|
+
let displayRules = getMoEInAppRules(displayRulesPayload);
|
|
77
|
+
|
|
78
|
+
return new MoESelfHandledCampaign(payload, dismissInterval, displayRules);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function getMoEInAppRules(json: { [k: string]: any }) {
|
|
82
|
+
var screenName = null;
|
|
83
|
+
if (json[MOE_INAPP_SCREEN_NAME] != undefined) {
|
|
84
|
+
screenName = json[MOE_INAPP_SCREEN_NAME];
|
|
85
|
+
}
|
|
86
|
+
var contexts = json[MOE_INAPP_CONTEXTS];
|
|
87
|
+
return new MoEInAppRules(screenName, contexts);
|
|
68
88
|
}
|
|
69
89
|
|
|
70
90
|
function getMoEInAppCustomAction(json: { [k: string]: any }) {
|
|
@@ -203,7 +223,26 @@ export function getNavigationObj(json: { [k: string]: any }, accountMetaPayload:
|
|
|
203
223
|
var accountMeta = getMoEAccountMeta(accountMetaPayload);
|
|
204
224
|
var action = getMoEInAppNavigation(json);
|
|
205
225
|
return new MoEClickData(accountMeta, platform, campaignData, action);
|
|
206
|
-
|
|
207
226
|
}
|
|
208
227
|
else return undefined
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
export function getMoESelfHandledCampaignsDataObj(payload: string) {
|
|
231
|
+
const jsonPayload = JSON.parse(payload);
|
|
232
|
+
const accountMeta = getMoEAccountMeta(jsonPayload[ACCOUNT_META]);
|
|
233
|
+
const selfHandledCampaigns: Array<MoESelfHandledCampaignData> = [];
|
|
234
|
+
|
|
235
|
+
for (let i = 0; i < jsonPayload.campaigns.length; i++) {
|
|
236
|
+
const campaignJson = jsonPayload.campaigns[i];
|
|
237
|
+
const campaignPayload = campaignJson[MOE_DATA];
|
|
238
|
+
|
|
239
|
+
if (isSelfHandledCampaignValid(campaignPayload)) {
|
|
240
|
+
const campaign = getMoESelfHandledCampaign(campaignPayload);
|
|
241
|
+
var platform = campaignPayload[MOE_PLATFORM];
|
|
242
|
+
const campaignData = getMoECampaignData(campaignPayload);
|
|
243
|
+
const campaignInfo = new MoESelfHandledCampaignData(accountMeta, platform, campaign, campaignData);
|
|
244
|
+
selfHandledCampaigns.push(campaignInfo);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
return new MoESelfHandledCampaignsData(accountMeta, selfHandledCampaigns);
|
|
209
248
|
}
|
|
@@ -26,6 +26,12 @@ export const MOE_KEY_VALUE_PAIR = 'kvPair'
|
|
|
26
26
|
//IN APP SELF HANDLED
|
|
27
27
|
export const MOE_DISMISSINTERVAL = 'dismissInterval'
|
|
28
28
|
export const MOE_IS_CANCELLABLE = 'isCancellable'
|
|
29
|
+
export const MOE_CAMPAIGNS = 'campaigns'
|
|
30
|
+
|
|
31
|
+
// INAPP DISPLAY RULES
|
|
32
|
+
export const MOE_INAPP_DISPLAY_RULES = 'displayRules'
|
|
33
|
+
export const MOE_INAPP_SCREEN_NAME = 'screenName'
|
|
34
|
+
export const MOE_INAPP_CONTEXTS = 'contexts'
|
|
29
35
|
|
|
30
36
|
//IN APP NAVIGATION
|
|
31
37
|
export const MOE_NAVIGATION_TYPE = 'navigationType'
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { getMoESelfHandledCampaignsDataObj } from "../../src/moeParser/MoEInAppParser";
|
|
2
|
+
import MoEngageLogger from "../logger/MoEngageLogger";
|
|
3
|
+
import MoEReactBridge from "../NativeMoEngage";
|
|
4
|
+
import { getAppIdJson } from "../utils/MoEJsonBuilder";
|
|
5
|
+
|
|
6
|
+
export const getSelfHandledInApps = async (appId: string) => {
|
|
7
|
+
try {
|
|
8
|
+
const selfHandledCampaignsData = await MoEReactBridge.getSelfHandledInApps(getAppIdJson(appId));
|
|
9
|
+
const retVal = getMoESelfHandledCampaignsDataObj(selfHandledCampaignsData);
|
|
10
|
+
return retVal;
|
|
11
|
+
} catch (error) {
|
|
12
|
+
MoEngageLogger.error("getSelfHandledInApps: error parsing $error", error);
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -3,13 +3,14 @@ import MoEInAppData from "../models/MoEInAppData";
|
|
|
3
3
|
import MoEProperties from "../models/MoEProperties";
|
|
4
4
|
import MoESelfHandledCampaignData from "../models/MoESelfHandledCampaignData";
|
|
5
5
|
import { MOE_LOCATION } from "./MoEConstants";
|
|
6
|
-
import { MoEPropertiesToJson} from "./MoEObjectToJson";
|
|
7
|
-
import {MoEngagePermissionType} from "../models/MoEngagePermissionType";
|
|
6
|
+
import { MoEPropertiesToJson } from "./MoEObjectToJson";
|
|
7
|
+
import { MoEngagePermissionType } from "../models/MoEngagePermissionType";
|
|
8
8
|
import MoEInitConfig from "../models/MoEInitConfig";
|
|
9
9
|
import MoEngageLogger from "../logger/MoEngageLogger";
|
|
10
|
-
import {MoEngageNudgePosition} from "../models/MoEngageNudgePosition";
|
|
10
|
+
import { MoEngageNudgePosition } from "../models/MoEngageNudgePosition";
|
|
11
11
|
import { MoESupportedAttributes } from "../models/MoESupportedAttributes";
|
|
12
|
-
|
|
12
|
+
import MoESelfHandledCampaign from "../models/MoESelfHandledCampaign";
|
|
13
|
+
import MoEInAppRules from "../models/MoEInAppRules";
|
|
13
14
|
|
|
14
15
|
export function getInAppCampaignJson(moEInAppData: MoEInAppData, type: string, appId: String) {
|
|
15
16
|
var json: { [k: string]: any } = {
|
|
@@ -37,7 +38,7 @@ export function getSelfHandledJson(moESelfHandledCampaignData: MoESelfHandledCam
|
|
|
37
38
|
campaignName: moESelfHandledCampaignData.campaignData.campaignName,
|
|
38
39
|
campaignId: moESelfHandledCampaignData.campaignData.campaignId,
|
|
39
40
|
campaignContext: moESelfHandledCampaignData.campaignData.context.attributes,
|
|
40
|
-
selfHandled: moESelfHandledCampaignData.campaign,
|
|
41
|
+
selfHandled: getSelfHandledCampaignJson(moESelfHandledCampaignData.campaign),
|
|
41
42
|
platform: moESelfHandledCampaignData.platform
|
|
42
43
|
}
|
|
43
44
|
}
|
|
@@ -81,14 +82,14 @@ export function getMoEPushCampaignJson(pushPayload: object, service: string, app
|
|
|
81
82
|
},
|
|
82
83
|
data: {
|
|
83
84
|
payload: pushPayload,
|
|
84
|
-
service:service
|
|
85
|
+
service: service
|
|
85
86
|
}
|
|
86
87
|
}
|
|
87
88
|
return JSON.stringify(json);
|
|
88
89
|
}
|
|
89
90
|
|
|
90
91
|
export function getMoEPushTokenJson(pushToken: string, pushService: string, platform: string, appId: String) {
|
|
91
|
-
var json: { [k: string]: any} = {
|
|
92
|
+
var json: { [k: string]: any } = {
|
|
92
93
|
accountMeta: {
|
|
93
94
|
appId: appId
|
|
94
95
|
},
|
|
@@ -227,11 +228,11 @@ export function getOptOutTrackingJson(type: string, state: boolean, appId: strin
|
|
|
227
228
|
}
|
|
228
229
|
|
|
229
230
|
export function getPermissionResponseJson(isGranted: boolean, permissionType: MoEngagePermissionType) {
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
231
|
+
let json: { [k: string]: any } = {
|
|
232
|
+
isGranted: isGranted,
|
|
233
|
+
type: permissionType.toLowerCase()
|
|
234
|
+
}
|
|
235
|
+
return JSON.stringify(json);
|
|
235
236
|
}
|
|
236
237
|
|
|
237
238
|
export function getPushPermissionRequestCountJson(count: number, appId: String) {
|
|
@@ -286,3 +287,22 @@ export function getNudgeDisplayJson(nudgePosition: MoEngageNudgePosition, appId:
|
|
|
286
287
|
}
|
|
287
288
|
return JSON.stringify(json);
|
|
288
289
|
}
|
|
290
|
+
|
|
291
|
+
export function getSelfHandledCampaignJson(moESelfHandledCampaign: MoESelfHandledCampaign) {
|
|
292
|
+
var json: { [k: string]: any } = {
|
|
293
|
+
dismissInterval: moESelfHandledCampaign.dismissInterval,
|
|
294
|
+
displayRules: moESelfHandledCampaign.displayRules,
|
|
295
|
+
payload: moESelfHandledCampaign.payload
|
|
296
|
+
}
|
|
297
|
+
MoEngageLogger.verbose("getSelfHandledCampaignJson(): payload json: ", json);
|
|
298
|
+
return json;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
export function getDisplayRulesJson(displayRules: MoEInAppRules) {
|
|
302
|
+
var json: { [k: string]: any } = {
|
|
303
|
+
contexts: displayRules.contexts,
|
|
304
|
+
screenName: displayRules.screenName
|
|
305
|
+
}
|
|
306
|
+
MoEngageLogger.verbose("getDisplayRulesJson(): payload json: ", json);
|
|
307
|
+
return json;
|
|
308
|
+
}
|