react-native-moengage 8.5.0 → 8.5.1
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 +6 -0
- package/package.json +12 -1
- package/src/index.ts +92 -96
- package/src/logger/MoEngageLogger.ts +77 -0
- package/src/models/MoEInitConfig.ts +13 -3
- package/src/models/MoEProperties.ts +8 -7
- package/src/models/MoEngageLogConfig.ts +69 -0
- package/src/moeParser/MoEInAppParser.ts +28 -7
- package/src/moeParser/MoEPushNotificationParser.ts +3 -2
- package/src/moeParser/MoEngagePayloadParser.ts +0 -1
- package/src/platform/MoERNAndroid.ts +5 -17
- package/src/platform/MoERNiOS.ts +2 -2
- package/src/utils/MoEConstants.ts +9 -0
- package/src/utils/MoEJsonBuilder.ts +3 -3
- package/src/utils/MoEngageGlobalCache.ts +22 -0
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-moengage",
|
|
3
|
-
"version": "8.5.
|
|
3
|
+
"version": "8.5.1",
|
|
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
|
+
"files": [
|
|
7
|
+
"android",
|
|
8
|
+
"iOS",
|
|
9
|
+
"src",
|
|
10
|
+
"CHANGELOG.md",
|
|
11
|
+
"README.md",
|
|
12
|
+
"ReactNativeMoEngage.podspec",
|
|
13
|
+
"package.json",
|
|
14
|
+
"!**/__tests__",
|
|
15
|
+
"!**/__mocks__"
|
|
16
|
+
],
|
|
6
17
|
"keywords": [
|
|
7
18
|
"moengage",
|
|
8
19
|
"push-notification",
|
package/src/index.ts
CHANGED
|
@@ -44,6 +44,9 @@ import MoESelfHandledCampaignData from "./models/MoESelfHandledCampaignData";
|
|
|
44
44
|
import {MoEngagePermissionType} from "./models/MoEngagePermissionType";
|
|
45
45
|
import MoEInitConfig from "./models/MoEInitConfig";
|
|
46
46
|
import MoEPushConfig from "./models/MoEPushConfig";
|
|
47
|
+
import MoEngageLogConfig, { MoEngageLogLevel } from "./models/MoEngageLogConfig";
|
|
48
|
+
import MoEngageGlobalCache from "./utils/MoEngageGlobalCache";
|
|
49
|
+
import MoEngageLogger from "./logger/MoEngageLogger";
|
|
47
50
|
|
|
48
51
|
const MoEReactBridge = require("react-native").NativeModules.MoEReactBridge;
|
|
49
52
|
const PLATFORM_ANDROID = "android";
|
|
@@ -102,7 +105,11 @@ var moeAppId = "";
|
|
|
102
105
|
if (MoEReactBridge) {
|
|
103
106
|
MoeEventEmitter = new NativeEventEmitter(MoEReactBridge);
|
|
104
107
|
for (var i = 0; i < eventBroadcastNames.length; i++) {
|
|
105
|
-
|
|
108
|
+
let eventName = _eventNames[i];
|
|
109
|
+
let eventBroadcastName = eventBroadcastNames[i];
|
|
110
|
+
if (eventName !== undefined && eventBroadcastName !== undefined) {
|
|
111
|
+
handleEventBroadcast(eventName, eventBroadcastName);
|
|
112
|
+
}
|
|
106
113
|
}
|
|
107
114
|
}
|
|
108
115
|
|
|
@@ -120,10 +127,6 @@ function commonValidationCheck() {
|
|
|
120
127
|
}
|
|
121
128
|
}
|
|
122
129
|
|
|
123
|
-
function showError(message: String) {
|
|
124
|
-
console.error(message);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
130
|
var ReactMoE = {
|
|
128
131
|
setEventListener: function (type: any, handler: any) {
|
|
129
132
|
if (!MoEReactBridge) return;
|
|
@@ -136,13 +139,14 @@ var ReactMoE = {
|
|
|
136
139
|
},
|
|
137
140
|
|
|
138
141
|
/**
|
|
139
|
-
* Initialise the MoEngage SDK, once the hybrid component is mounted
|
|
142
|
+
* Initialise the MoEngage SDK, once the hybrid component is mounted
|
|
140
143
|
*
|
|
141
|
-
* @param appId AppId for the application, can be found on MoEngage Dashboard
|
|
144
|
+
* @param appId AppId for the application, can be found on MoEngage Dashboard
|
|
142
145
|
* @param initConfig instance of {@link MoEInitConfig}, works only in Android & has no effect for other plaforms.
|
|
143
146
|
*/
|
|
144
|
-
initialize: function (appId:string, initConfig
|
|
145
|
-
moeAppId = appId;
|
|
147
|
+
initialize: function (appId: string, initConfig: MoEInitConfig = MoEInitConfig.defaultConfig()) {
|
|
148
|
+
moeAppId = appId;
|
|
149
|
+
MoEngageGlobalCache.updateInitConfig(initConfig);
|
|
146
150
|
commonValidationCheck();
|
|
147
151
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
148
152
|
MoERNAndroid.initialize(getInitConfigJson(appId, initConfig));
|
|
@@ -160,8 +164,8 @@ var ReactMoE = {
|
|
|
160
164
|
*/
|
|
161
165
|
setAppStatus: function (status: MoEAppStatus) {
|
|
162
166
|
commonValidationCheck();
|
|
163
|
-
|
|
164
|
-
let payload = getAppStatusJson(MoEHelper.appStatusToString(status),moeAppId);
|
|
167
|
+
MoEngageLogger.verbose("Will track whether it is a fresh install or update.");
|
|
168
|
+
let payload = getAppStatusJson(MoEHelper.appStatusToString(status), moeAppId);
|
|
165
169
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
166
170
|
MoERNAndroid.setAppStatus(payload);
|
|
167
171
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -182,12 +186,12 @@ var ReactMoE = {
|
|
|
182
186
|
}
|
|
183
187
|
|
|
184
188
|
if (!(properties instanceof MoEProperties)) {
|
|
185
|
-
|
|
189
|
+
MoEngageLogger.warn("trackEvent: properties must of MoEProperties type");
|
|
186
190
|
return;
|
|
187
191
|
}
|
|
188
192
|
|
|
189
|
-
|
|
190
|
-
|
|
193
|
+
MoEngageLogger.verbose("trackEvent with properties", properties);
|
|
194
|
+
let payload = getMoEPropertiesJson(properties, eventName, moeAppId);
|
|
191
195
|
|
|
192
196
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
193
197
|
MoERNAndroid.trackEvent(payload);
|
|
@@ -202,8 +206,8 @@ var ReactMoE = {
|
|
|
202
206
|
*/
|
|
203
207
|
setUserUniqueID: function (uniqueId: string) {
|
|
204
208
|
commonValidationCheck();
|
|
205
|
-
|
|
206
|
-
const payload = getUserAttributeJson(USER_ATTRIBUTE_UNIQUE_ID,uniqueId,GENERAL,moeAppId)
|
|
209
|
+
MoEngageLogger.verbose("Will set unique ID: ", uniqueId);
|
|
210
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_UNIQUE_ID, uniqueId, GENERAL, moeAppId);
|
|
207
211
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
208
212
|
MoERNAndroid.setUserAttribute(payload);
|
|
209
213
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -217,8 +221,8 @@ var ReactMoE = {
|
|
|
217
221
|
*/
|
|
218
222
|
setAlias: function (alias: string) {
|
|
219
223
|
commonValidationCheck();
|
|
220
|
-
|
|
221
|
-
let payload = getAliasJson(alias,moeAppId);
|
|
224
|
+
MoEngageLogger.verbose("Will set alias: ", alias);
|
|
225
|
+
let payload = getAliasJson(alias, moeAppId);
|
|
222
226
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
223
227
|
MoERNAndroid.setAlias(payload);
|
|
224
228
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -232,8 +236,8 @@ var ReactMoE = {
|
|
|
232
236
|
*/
|
|
233
237
|
setUserName: function (userName: string) {
|
|
234
238
|
commonValidationCheck();
|
|
235
|
-
|
|
236
|
-
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_NAME,userName,GENERAL,moeAppId)
|
|
239
|
+
MoEngageLogger.verbose("Will set username: ", userName);
|
|
240
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_NAME, userName, GENERAL, moeAppId);
|
|
237
241
|
|
|
238
242
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
239
243
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -248,8 +252,8 @@ var ReactMoE = {
|
|
|
248
252
|
*/
|
|
249
253
|
setUserFirstName: function (firstName: string) {
|
|
250
254
|
commonValidationCheck();
|
|
251
|
-
|
|
252
|
-
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_FIRST_NAME,firstName,GENERAL,moeAppId)
|
|
255
|
+
MoEngageLogger.verbose("Will set first name: ", firstName);
|
|
256
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_FIRST_NAME, firstName, GENERAL, moeAppId);
|
|
253
257
|
|
|
254
258
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
255
259
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -264,8 +268,8 @@ var ReactMoE = {
|
|
|
264
268
|
*/
|
|
265
269
|
setUserLastName: function (lastName: string) {
|
|
266
270
|
commonValidationCheck();
|
|
267
|
-
|
|
268
|
-
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_LAST_NAME,lastName,GENERAL,moeAppId)
|
|
271
|
+
MoEngageLogger.verbose("Will set last name: ", lastName);
|
|
272
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_LAST_NAME, lastName, GENERAL, moeAppId);
|
|
269
273
|
|
|
270
274
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
271
275
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -280,8 +284,8 @@ var ReactMoE = {
|
|
|
280
284
|
*/
|
|
281
285
|
setUserEmailID: function (emailId: string) {
|
|
282
286
|
commonValidationCheck();
|
|
283
|
-
|
|
284
|
-
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_EMAIL,emailId,GENERAL,moeAppId)
|
|
287
|
+
MoEngageLogger.verbose("Will set email-id ", emailId);
|
|
288
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_EMAIL, emailId, GENERAL, moeAppId);
|
|
285
289
|
|
|
286
290
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
287
291
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -296,8 +300,8 @@ var ReactMoE = {
|
|
|
296
300
|
*/
|
|
297
301
|
setUserContactNumber: function (mobileNumber: string) {
|
|
298
302
|
commonValidationCheck();
|
|
299
|
-
|
|
300
|
-
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_MOBILE,mobileNumber,GENERAL,moeAppId)
|
|
303
|
+
MoEngageLogger.verbose("Will set Mobile Number: ", mobileNumber);
|
|
304
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_MOBILE, mobileNumber, GENERAL, moeAppId)
|
|
301
305
|
|
|
302
306
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
303
307
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -312,8 +316,8 @@ var ReactMoE = {
|
|
|
312
316
|
*/
|
|
313
317
|
setUserBirthday: function (birthday: string) {
|
|
314
318
|
commonValidationCheck();
|
|
315
|
-
|
|
316
|
-
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_BDAY,birthday,TIMESTAMP,moeAppId)
|
|
319
|
+
MoEngageLogger.verbose("Will set birthday: ", birthday);
|
|
320
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_BDAY, birthday, TIMESTAMP, moeAppId);
|
|
317
321
|
|
|
318
322
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
319
323
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -328,9 +332,8 @@ var ReactMoE = {
|
|
|
328
332
|
*/
|
|
329
333
|
setUserGender: function (gender: Object) {
|
|
330
334
|
commonValidationCheck();
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_GENDER,gender,GENERAL,moeAppId)
|
|
335
|
+
MoEngageLogger.verbose("Will set gender: ", gender);
|
|
336
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_GENDER, gender, GENERAL, moeAppId);
|
|
334
337
|
|
|
335
338
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
336
339
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -346,10 +349,10 @@ var ReactMoE = {
|
|
|
346
349
|
setUserLocation: function (location: MoEGeoLocation) {
|
|
347
350
|
commonValidationCheck();
|
|
348
351
|
if (!(location instanceof MoEGeoLocation)) {
|
|
349
|
-
|
|
352
|
+
MoEngageLogger.warn("setUserLocation: location must of type MoEGeoLocation");
|
|
350
353
|
return;
|
|
351
354
|
}
|
|
352
|
-
const payload = getUserLocAttributeJson(USER_ATTRIBUTE_USER_LOCATION,location.latitude,location.longitude,moeAppId)
|
|
355
|
+
const payload = getUserLocAttributeJson(USER_ATTRIBUTE_USER_LOCATION, location.latitude, location.longitude, moeAppId);
|
|
353
356
|
|
|
354
357
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
355
358
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -365,13 +368,13 @@ var ReactMoE = {
|
|
|
365
368
|
*/
|
|
366
369
|
setUserAttribute: function (userAttributeName: string, userAttributeValue: Object) {
|
|
367
370
|
commonValidationCheck();
|
|
368
|
-
|
|
371
|
+
MoEngageLogger.verbose(
|
|
369
372
|
"Will track user attribute [attributeName]: " +
|
|
370
373
|
userAttributeName +
|
|
371
374
|
" attributeValue: " +
|
|
372
375
|
userAttributeValue
|
|
373
376
|
);
|
|
374
|
-
const payload = getUserAttributeJson(userAttributeName,userAttributeValue,GENERAL,moeAppId)
|
|
377
|
+
const payload = getUserAttributeJson(userAttributeName, userAttributeValue, GENERAL, moeAppId);
|
|
375
378
|
|
|
376
379
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
377
380
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -390,7 +393,7 @@ var ReactMoE = {
|
|
|
390
393
|
date: String
|
|
391
394
|
) {
|
|
392
395
|
commonValidationCheck();
|
|
393
|
-
const payload = getUserAttributeJson(attributeName,date,TIMESTAMP,moeAppId)
|
|
396
|
+
const payload = getUserAttributeJson(attributeName, date, TIMESTAMP, moeAppId);
|
|
394
397
|
|
|
395
398
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
396
399
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -410,12 +413,10 @@ var ReactMoE = {
|
|
|
410
413
|
) {
|
|
411
414
|
commonValidationCheck();
|
|
412
415
|
if (!(location instanceof MoEGeoLocation)) {
|
|
413
|
-
|
|
414
|
-
"setUserAttributeWithLocation: location must of type MoEGeoLocation"
|
|
415
|
-
);
|
|
416
|
+
MoEngageLogger.warn("setUserAttributeWithLocation: location must of type MoEGeoLocation");
|
|
416
417
|
return;
|
|
417
418
|
}
|
|
418
|
-
const payload = getUserLocAttributeJson(userAttributeName,location.latitude,location.longitude,moeAppId)
|
|
419
|
+
const payload = getUserLocAttributeJson(userAttributeName, location.latitude, location.longitude, moeAppId);
|
|
419
420
|
|
|
420
421
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
421
422
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -429,7 +430,7 @@ var ReactMoE = {
|
|
|
429
430
|
*/
|
|
430
431
|
logout: function () {
|
|
431
432
|
commonValidationCheck();
|
|
432
|
-
|
|
433
|
+
MoEngageLogger.verbose("Will logout user");
|
|
433
434
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
434
435
|
MoERNAndroid.logout(getAppIdJson(moeAppId));
|
|
435
436
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -442,7 +443,7 @@ var ReactMoE = {
|
|
|
442
443
|
*/
|
|
443
444
|
showInApp: function () {
|
|
444
445
|
commonValidationCheck();
|
|
445
|
-
|
|
446
|
+
MoEngageLogger.verbose("Will try to show in-app.");
|
|
446
447
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
447
448
|
MoERNAndroid.showInApp(getAppIdJson(moeAppId));
|
|
448
449
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -469,12 +470,10 @@ var ReactMoE = {
|
|
|
469
470
|
selfHandledShown: function (inAppCampaign: MoESelfHandledCampaignData) {
|
|
470
471
|
commonValidationCheck();
|
|
471
472
|
if (!(inAppCampaign instanceof MoESelfHandledCampaignData)) {
|
|
472
|
-
|
|
473
|
-
"selfHandledShown: inAppCampaign must of MoESelfHandledCampaignData type"
|
|
474
|
-
);
|
|
473
|
+
MoEngageLogger.warn("selfHandledShown: inAppCampaign must of MoESelfHandledCampaignData type");
|
|
475
474
|
return;
|
|
476
475
|
}
|
|
477
|
-
let campaignJson = getSelfHandledJson(inAppCampaign,"impression",moeAppId);
|
|
476
|
+
let campaignJson = getSelfHandledJson(inAppCampaign, "impression", moeAppId);
|
|
478
477
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
479
478
|
MoERNAndroid.selfHandledShown(campaignJson);
|
|
480
479
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -489,12 +488,10 @@ var ReactMoE = {
|
|
|
489
488
|
selfHandledClicked: function (moEClickData: MoESelfHandledCampaignData) {
|
|
490
489
|
commonValidationCheck();
|
|
491
490
|
if (!(moEClickData instanceof MoESelfHandledCampaignData)) {
|
|
492
|
-
|
|
493
|
-
"selfHandledClicked: inAppCampaign must of MoEClickData type"
|
|
494
|
-
);
|
|
491
|
+
MoEngageLogger.warn("selfHandledClicked: inAppCampaign must of MoEClickData type");
|
|
495
492
|
return;
|
|
496
493
|
}
|
|
497
|
-
let campaignJson = getSelfHandledJson(moEClickData,"click",moeAppId);
|
|
494
|
+
let campaignJson = getSelfHandledJson(moEClickData, "click", moeAppId);
|
|
498
495
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
499
496
|
MoERNAndroid.selfHandledClicked(campaignJson);
|
|
500
497
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -509,12 +506,10 @@ var ReactMoE = {
|
|
|
509
506
|
selfHandledDismissed: function (inAppCampaign: MoESelfHandledCampaignData) {
|
|
510
507
|
commonValidationCheck();
|
|
511
508
|
if (!(inAppCampaign instanceof MoESelfHandledCampaignData)) {
|
|
512
|
-
|
|
513
|
-
"selfHandledDismissed: inAppCampaign must of MoESelfHandledCampaignData type"
|
|
514
|
-
);
|
|
509
|
+
MoEngageLogger.warn("selfHandledDismissed: inAppCampaign must of MoESelfHandledCampaignData type");
|
|
515
510
|
return;
|
|
516
511
|
}
|
|
517
|
-
let campaignJson = getSelfHandledJson(inAppCampaign,"dismissed",moeAppId);
|
|
512
|
+
let campaignJson = getSelfHandledJson(inAppCampaign, "dismissed", moeAppId);
|
|
518
513
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
519
514
|
MoERNAndroid.selfHandledDismissed(campaignJson);
|
|
520
515
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -529,12 +524,10 @@ var ReactMoE = {
|
|
|
529
524
|
setCurrentContext: function (contexts: Array<String>) {
|
|
530
525
|
commonValidationCheck();
|
|
531
526
|
if (!MoEHelper.validateArrayOfString(contexts)) {
|
|
532
|
-
|
|
533
|
-
"setCurrentContext: contexts must be a non empty array of strings"
|
|
534
|
-
);
|
|
527
|
+
MoEngageLogger.warn("setCurrentContext: contexts must be a non empty array of strings");
|
|
535
528
|
return;
|
|
536
529
|
}
|
|
537
|
-
let payload = getInAppContextJson(contexts,moeAppId);
|
|
530
|
+
let payload = getInAppContextJson(contexts, moeAppId);
|
|
538
531
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
539
532
|
MoERNAndroid.setAppContext(payload);
|
|
540
533
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -562,13 +555,13 @@ var ReactMoE = {
|
|
|
562
555
|
*/
|
|
563
556
|
passFcmPushToken: function (pushToken: string) {
|
|
564
557
|
commonValidationCheck();
|
|
565
|
-
|
|
566
|
-
let payload = getMoEPushTokenJson(pushToken,PUSH_SERVICE_FCM,PLATFORM_ANDROID,moeAppId);
|
|
558
|
+
MoEngageLogger.verbose("Will process push token");
|
|
559
|
+
let payload = getMoEPushTokenJson(pushToken, PUSH_SERVICE_FCM, PLATFORM_ANDROID, moeAppId);
|
|
567
560
|
|
|
568
561
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
569
562
|
MoERNAndroid.passFcmPushToken(payload);
|
|
570
563
|
} else {
|
|
571
|
-
|
|
564
|
+
MoEngageLogger.debug("This api is not supported on iOS platform.");
|
|
572
565
|
}
|
|
573
566
|
},
|
|
574
567
|
/**
|
|
@@ -579,13 +572,13 @@ var ReactMoE = {
|
|
|
579
572
|
*/
|
|
580
573
|
passFcmPushPayload: function (pushPayload: object) {
|
|
581
574
|
commonValidationCheck();
|
|
582
|
-
|
|
583
|
-
let payload = getMoEPushCampaignJson(pushPayload,PUSH_SERVICE_FCM,moeAppId)
|
|
575
|
+
MoEngageLogger.verbose("Will process push payload.");
|
|
576
|
+
let payload = getMoEPushCampaignJson(pushPayload, PUSH_SERVICE_FCM, moeAppId);
|
|
584
577
|
|
|
585
578
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
586
579
|
MoERNAndroid.passFcmPushPayload(payload);
|
|
587
580
|
} else {
|
|
588
|
-
|
|
581
|
+
MoEngageLogger.debug("This api is not supported on iOS platform.");
|
|
589
582
|
}
|
|
590
583
|
},
|
|
591
584
|
|
|
@@ -594,9 +587,9 @@ var ReactMoE = {
|
|
|
594
587
|
*/
|
|
595
588
|
registerForPush: function () {
|
|
596
589
|
commonValidationCheck();
|
|
597
|
-
|
|
590
|
+
MoEngageLogger.verbose("Will registerForPush");
|
|
598
591
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
599
|
-
|
|
592
|
+
MoEngageLogger.debug("This api is not supported on android platform.");
|
|
600
593
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
601
594
|
MoERNiOS.registerForPush();
|
|
602
595
|
}
|
|
@@ -607,9 +600,9 @@ var ReactMoE = {
|
|
|
607
600
|
*/
|
|
608
601
|
disableInbox: function () {
|
|
609
602
|
commonValidationCheck();
|
|
610
|
-
|
|
603
|
+
MoEngageLogger.verbose("Will disableInbox");
|
|
611
604
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
612
|
-
|
|
605
|
+
MoEngageLogger.debug("This api is not supported on android platform.");
|
|
613
606
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
614
607
|
MoERNiOS.disableInbox(getAppIdJson(moeAppId));
|
|
615
608
|
}
|
|
@@ -627,8 +620,8 @@ var ReactMoE = {
|
|
|
627
620
|
},
|
|
628
621
|
|
|
629
622
|
optOutDataTracking: function (shouldOptOutDataTracking: boolean) {
|
|
630
|
-
|
|
631
|
-
let payload = getOptOutTrackingJson("data",shouldOptOutDataTracking,moeAppId);
|
|
623
|
+
MoEngageLogger.verbose("Will opt out data tracking");
|
|
624
|
+
let payload = getOptOutTrackingJson("data", shouldOptOutDataTracking, moeAppId);
|
|
632
625
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
633
626
|
MoERNAndroid.optOutDataTracking(payload);
|
|
634
627
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -644,19 +637,19 @@ var ReactMoE = {
|
|
|
644
637
|
*/
|
|
645
638
|
passPushKitPushToken: function (pushToken: string) {
|
|
646
639
|
commonValidationCheck();
|
|
647
|
-
|
|
648
|
-
let payload = getMoEPushTokenJson(pushToken,PUSH_SERVICE_PUSH_KIT,PLATFORM_ANDROID,moeAppId);
|
|
640
|
+
MoEngageLogger.verbose("Will process push-kit push token");
|
|
641
|
+
let payload = getMoEPushTokenJson(pushToken, PUSH_SERVICE_PUSH_KIT, PLATFORM_ANDROID, moeAppId);
|
|
649
642
|
|
|
650
643
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
651
644
|
MoERNAndroid.passPushKitPushToken(payload);
|
|
652
645
|
} else {
|
|
653
|
-
|
|
646
|
+
MoEngageLogger.debug("This api is not supported on iOS platform.");
|
|
654
647
|
}
|
|
655
648
|
},
|
|
656
649
|
|
|
657
650
|
enableSdk: function () {
|
|
658
|
-
|
|
659
|
-
let payload = getSdkStateJson(true,moeAppId)
|
|
651
|
+
MoEngageLogger.verbose("Will enable SDK");
|
|
652
|
+
let payload = getSdkStateJson(true, moeAppId);
|
|
660
653
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
661
654
|
MoERNAndroid.updateSdkState(payload);
|
|
662
655
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -665,8 +658,8 @@ var ReactMoE = {
|
|
|
665
658
|
},
|
|
666
659
|
|
|
667
660
|
disableSdk: function () {
|
|
668
|
-
|
|
669
|
-
let payload = getSdkStateJson(false,moeAppId)
|
|
661
|
+
MoEngageLogger.verbose("Will disable SDK");
|
|
662
|
+
let payload = getSdkStateJson(false, moeAppId);
|
|
670
663
|
|
|
671
664
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
672
665
|
MoERNAndroid.updateSdkState(payload);
|
|
@@ -676,7 +669,7 @@ var ReactMoE = {
|
|
|
676
669
|
},
|
|
677
670
|
|
|
678
671
|
onOrientationChanged: function () {
|
|
679
|
-
|
|
672
|
+
MoEngageLogger.verbose("Will process screen rotation.");
|
|
680
673
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
681
674
|
MoERNAndroid.onOrientationChanged();
|
|
682
675
|
}
|
|
@@ -686,8 +679,8 @@ var ReactMoE = {
|
|
|
686
679
|
* API to enable Advertising Id tracking for Android.
|
|
687
680
|
*/
|
|
688
681
|
enableAdIdTracking: function () {
|
|
689
|
-
|
|
690
|
-
let payload = getAdIdTrackingJson(true,moeAppId);
|
|
682
|
+
MoEngageLogger.verbose("Will enable advertising-id tracking");
|
|
683
|
+
let payload = getAdIdTrackingJson(true, moeAppId);
|
|
691
684
|
|
|
692
685
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
693
686
|
MoERNAndroid.enableAdIdTracking(payload);
|
|
@@ -701,8 +694,8 @@ var ReactMoE = {
|
|
|
701
694
|
* Advertising Id tracking at some point.
|
|
702
695
|
*/
|
|
703
696
|
disableAdIdTracking: function () {
|
|
704
|
-
|
|
705
|
-
let payload = getAdIdTrackingJson(false,moeAppId);
|
|
697
|
+
MoEngageLogger.verbose("Will disable advertising-id tracking");
|
|
698
|
+
let payload = getAdIdTrackingJson(false, moeAppId);
|
|
706
699
|
|
|
707
700
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
708
701
|
MoERNAndroid.disableAdIdTracking(payload);
|
|
@@ -713,8 +706,8 @@ var ReactMoE = {
|
|
|
713
706
|
* API to enable Android Id tracking for Android.
|
|
714
707
|
*/
|
|
715
708
|
enableAndroidIdTracking: function () {
|
|
716
|
-
|
|
717
|
-
let payload = getAndroidIdTrackingJson(true,moeAppId);
|
|
709
|
+
MoEngageLogger.verbose("Will enable android-id tracking");
|
|
710
|
+
let payload = getAndroidIdTrackingJson(true, moeAppId);
|
|
718
711
|
|
|
719
712
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
720
713
|
MoERNAndroid.enableAndroidIdTracking(payload);
|
|
@@ -728,8 +721,8 @@ var ReactMoE = {
|
|
|
728
721
|
* Advertising Id tracking at some point.
|
|
729
722
|
*/
|
|
730
723
|
disableAndroidIdTracking: function () {
|
|
731
|
-
|
|
732
|
-
let payload = getAndroidIdTrackingJson(false,moeAppId);
|
|
724
|
+
MoEngageLogger.verbose("Will disable android-id tracking");
|
|
725
|
+
let payload = getAndroidIdTrackingJson(false, moeAppId);
|
|
733
726
|
|
|
734
727
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
735
728
|
MoERNAndroid.disableAndroidIdTracking(payload);
|
|
@@ -737,28 +730,28 @@ var ReactMoE = {
|
|
|
737
730
|
},
|
|
738
731
|
|
|
739
732
|
pushPermissionResponseAndroid: function (isGranted: boolean) {
|
|
740
|
-
|
|
733
|
+
MoEngageLogger.verbose("Will track permission response");
|
|
741
734
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
742
735
|
MoERNAndroid.permissionResponse(isGranted, MoEngagePermissionType.PUSH)
|
|
743
736
|
}
|
|
744
737
|
},
|
|
745
738
|
|
|
746
739
|
setupNotificationChannelsAndroid: function () {
|
|
747
|
-
|
|
740
|
+
MoEngageLogger.verbose("Will setup notification");
|
|
748
741
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
749
742
|
MoERNAndroid.setupNotificationChannels();
|
|
750
743
|
}
|
|
751
744
|
},
|
|
752
745
|
|
|
753
746
|
navigateToSettingsAndroid: function () {
|
|
754
|
-
|
|
747
|
+
MoEngageLogger.verbose("Will navigate to settings");
|
|
755
748
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
756
749
|
MoERNAndroid.navigateToSettings();
|
|
757
750
|
}
|
|
758
751
|
},
|
|
759
752
|
|
|
760
753
|
requestPushPermissionAndroid: function () {
|
|
761
|
-
|
|
754
|
+
MoEngageLogger.verbose("Will request push permission.");
|
|
762
755
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
763
756
|
MoERNAndroid.requestPushPermission();
|
|
764
757
|
}
|
|
@@ -771,7 +764,7 @@ var ReactMoE = {
|
|
|
771
764
|
* @param {number} count - number of times push permission requested
|
|
772
765
|
*/
|
|
773
766
|
updatePushPermissionRequestCountAndroid: function (count: number) {
|
|
774
|
-
|
|
767
|
+
MoEngageLogger.verbose("Will increment push permission request count");
|
|
775
768
|
let payload = getPushPermissionRequestCountJson(count, moeAppId);
|
|
776
769
|
|
|
777
770
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
@@ -785,7 +778,7 @@ var ReactMoE = {
|
|
|
785
778
|
* Note: By default Device Id tracking is enabled
|
|
786
779
|
*/
|
|
787
780
|
enableDeviceIdTracking: function () {
|
|
788
|
-
|
|
781
|
+
MoEngageLogger.verbose("Will enable device id tracking");
|
|
789
782
|
let payload = getDeviceIdTrackingJson(true, moeAppId);
|
|
790
783
|
|
|
791
784
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
@@ -797,7 +790,7 @@ var ReactMoE = {
|
|
|
797
790
|
* API to disable Device Id tracking for Android.
|
|
798
791
|
*/
|
|
799
792
|
disableDeviceIdTracking: function () {
|
|
800
|
-
|
|
793
|
+
MoEngageLogger.verbose("Will disable device id tracking");
|
|
801
794
|
let payload = getDeviceIdTrackingJson(false, moeAppId);
|
|
802
795
|
|
|
803
796
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
@@ -815,6 +808,9 @@ export {
|
|
|
815
808
|
MoEProperties,
|
|
816
809
|
MoEAppStatus,
|
|
817
810
|
MoEInitConfig,
|
|
818
|
-
MoEPushConfig
|
|
811
|
+
MoEPushConfig,
|
|
812
|
+
MoEngageLogConfig,
|
|
813
|
+
MoEngageLogLevel,
|
|
814
|
+
MoEngageLogger
|
|
819
815
|
};
|
|
820
816
|
export default ReactMoE;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import MoEngageGlobalCache from "../utils/MoEngageGlobalCache";
|
|
2
|
+
import { MoEngageLogLevel } from "../models/MoEngageLogConfig";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Logger to print the ReactNative Plugin log
|
|
6
|
+
* Notes: To Configure the log check {@link MoEInitConfig}
|
|
7
|
+
*/
|
|
8
|
+
namespace MoEngageLogger {
|
|
9
|
+
|
|
10
|
+
function isLoggable(logLevel: MoEngageLogLevel): boolean {
|
|
11
|
+
return (__DEV__ || MoEngageGlobalCache.getInitConfig().logConfig.isEnabledForReleaseBuild)
|
|
12
|
+
&& MoEngageGlobalCache.getInitConfig().logConfig.logLevel >= logLevel;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Console error log
|
|
17
|
+
*
|
|
18
|
+
* @param {any} message - log message which need to be logged
|
|
19
|
+
* @param {any} data - additional message or data
|
|
20
|
+
*/
|
|
21
|
+
export function error(message: any, data?: any): void {
|
|
22
|
+
if (!isLoggable(MoEngageLogLevel.ERROR)) return;
|
|
23
|
+
if (data === undefined) console.error(message);
|
|
24
|
+
else console.error(message, data);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Console warn log
|
|
29
|
+
*
|
|
30
|
+
* @param {any} message - log message which need to be logged
|
|
31
|
+
* @param {any} data - additional message or data
|
|
32
|
+
*/
|
|
33
|
+
export function warn(message: any, data?: any): void {
|
|
34
|
+
if (!isLoggable(MoEngageLogLevel.WARN)) return;
|
|
35
|
+
if (data === undefined) console.warn(message);
|
|
36
|
+
else console.warn(message, data);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Console info log
|
|
41
|
+
*
|
|
42
|
+
* @param {any} message - log message which need to be logged
|
|
43
|
+
* @param {any} data - additional message or data
|
|
44
|
+
*/
|
|
45
|
+
export function info(message: any, data?: any): void {
|
|
46
|
+
if (!isLoggable(MoEngageLogLevel.INFO)) return;
|
|
47
|
+
if (data === undefined) console.info(message);
|
|
48
|
+
else console.info(message, data);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Console debug log
|
|
53
|
+
*
|
|
54
|
+
* @param {any} message - log message which need to be logged
|
|
55
|
+
* @param {any} data - additional message or data
|
|
56
|
+
*/
|
|
57
|
+
export function debug(message: any, data?: any): void {
|
|
58
|
+
if (!isLoggable(MoEngageLogLevel.DEBUG)) return;
|
|
59
|
+
if (data === undefined) console.debug(message);
|
|
60
|
+
else console.debug(message, data);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Console verbose log
|
|
65
|
+
* Notes: On Console it will be clubbed with debug log
|
|
66
|
+
*
|
|
67
|
+
* @param {any} message - log message which need to be logged
|
|
68
|
+
* @param {any} data - additional message or data
|
|
69
|
+
*/
|
|
70
|
+
export function verbose(message: any, data?: any): void {
|
|
71
|
+
if (!isLoggable(MoEngageLogLevel.VERBOSE)) return;
|
|
72
|
+
if (data === undefined) console.debug(message);
|
|
73
|
+
else console.debug(message, data);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export default MoEngageLogger;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import MoEngageLogConfig from "./MoEngageLogConfig";
|
|
1
2
|
import MoEPushConfig from "./MoEPushConfig";
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -6,21 +7,30 @@ import MoEPushConfig from "./MoEPushConfig";
|
|
|
6
7
|
*/
|
|
7
8
|
export default class MoEInitConfig {
|
|
8
9
|
|
|
9
|
-
pushConfig: MoEPushConfig;
|
|
10
|
+
pushConfig: MoEPushConfig = MoEPushConfig.defaultConfig();
|
|
11
|
+
|
|
12
|
+
logConfig: MoEngageLogConfig = MoEngageLogConfig.defaultConfig();
|
|
10
13
|
|
|
11
14
|
/**
|
|
12
15
|
* Create an instance of {@link MoEInitConfig}
|
|
13
16
|
*
|
|
14
17
|
* @param pushConfig instance of {@link MoEPushConfig}
|
|
18
|
+
* @param logConfig instance of {@link MoEngageLogConfig}
|
|
15
19
|
*/
|
|
16
|
-
constructor
|
|
20
|
+
constructor(pushConfig: MoEPushConfig = MoEPushConfig.defaultConfig(),
|
|
21
|
+
logConfig: MoEngageLogConfig = MoEngageLogConfig.defaultConfig()
|
|
22
|
+
) {
|
|
17
23
|
this.pushConfig = pushConfig;
|
|
24
|
+
this.logConfig = logConfig;
|
|
18
25
|
}
|
|
19
26
|
|
|
20
27
|
/**
|
|
21
28
|
* Default Config for {@link MoEInitConfig}
|
|
22
29
|
*/
|
|
23
30
|
static defaultConfig() {
|
|
24
|
-
return new MoEInitConfig(
|
|
31
|
+
return new MoEInitConfig(
|
|
32
|
+
MoEPushConfig.defaultConfig(),
|
|
33
|
+
MoEngageLogConfig.defaultConfig()
|
|
34
|
+
);
|
|
25
35
|
}
|
|
26
36
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// Helper class to track event attributes.
|
|
2
|
+
import MoEngageLogger from "../logger/MoEngageLogger";
|
|
2
3
|
import { MoEGeoLocationToJson } from "../utils/MoEObjectToJson";
|
|
3
4
|
import MoEGeoLocation from "./MoEGeoLocation";
|
|
4
5
|
|
|
@@ -42,7 +43,7 @@ export default class MoEProperties {
|
|
|
42
43
|
if (Array.isArray(value)) {
|
|
43
44
|
value = (value as Array<any>).filter(e => (this.validateType(["string", "number"], e)));
|
|
44
45
|
} else if (!this.validateType(["string", "number", "boolean"], value)) {
|
|
45
|
-
|
|
46
|
+
MoEngageLogger.warn("MoEProperties->addAttribute: invalid attribute");
|
|
46
47
|
return
|
|
47
48
|
}
|
|
48
49
|
|
|
@@ -60,7 +61,7 @@ export default class MoEProperties {
|
|
|
60
61
|
return;
|
|
61
62
|
}
|
|
62
63
|
if (!this.validateType(["string"], date)) {
|
|
63
|
-
|
|
64
|
+
MoEngageLogger.warn("MoEProperties->addDateAttribute: invalid date attribute");
|
|
64
65
|
return
|
|
65
66
|
}
|
|
66
67
|
this.dateTimeAttributes[key.toString()] = date;
|
|
@@ -81,7 +82,7 @@ export default class MoEProperties {
|
|
|
81
82
|
if (this.validateLatLong(location)) {
|
|
82
83
|
this.locationAttributes[key.toString()] = MoEGeoLocationToJson(location)
|
|
83
84
|
} else {
|
|
84
|
-
|
|
85
|
+
MoEngageLogger.warn("MoEGeoLocation->addLocationAttribute: invalid coordinates");
|
|
85
86
|
}
|
|
86
87
|
}
|
|
87
88
|
|
|
@@ -103,10 +104,10 @@ export default class MoEProperties {
|
|
|
103
104
|
|
|
104
105
|
private validateLatLong(location: MoEGeoLocation) {
|
|
105
106
|
return (
|
|
106
|
-
location.latitude > -91 &&
|
|
107
|
-
location.latitude < 91 &&
|
|
108
|
-
location.longitude > -181 &&
|
|
109
|
-
location.longitude < 181
|
|
107
|
+
location.latitude.valueOf() > -91 &&
|
|
108
|
+
location.latitude.valueOf() < 91 &&
|
|
109
|
+
location.longitude.valueOf() > -181 &&
|
|
110
|
+
location.longitude.valueOf() < 181
|
|
110
111
|
);
|
|
111
112
|
}
|
|
112
113
|
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DEFAULT_CONFIG_LOG_LEVEL,
|
|
3
|
+
DEFAULT_CONFIG_RELEASE_BUILD_LOG_ENABLED
|
|
4
|
+
} from "../utils/MoEConstants";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Config class to configure the React-Native Plugin log.
|
|
8
|
+
* Notes: To configure Native Module log check on Android / iOS initialisation config.
|
|
9
|
+
*/
|
|
10
|
+
export default class MoEngageLogConfig {
|
|
11
|
+
|
|
12
|
+
logLevel: MoEngageLogLevel = DEFAULT_CONFIG_LOG_LEVEL;
|
|
13
|
+
|
|
14
|
+
isEnabledForReleaseBuild: boolean = DEFAULT_CONFIG_RELEASE_BUILD_LOG_ENABLED;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Create an instance for MoEngageLogConfig
|
|
18
|
+
*
|
|
19
|
+
* @param logLevel - Min log level which need to be printed on console
|
|
20
|
+
* @param isEnabledForReleaseBuild - enable / disable the log in release build
|
|
21
|
+
*/
|
|
22
|
+
constructor(logLevel: MoEngageLogLevel, isEnabledForReleaseBuild: boolean) {
|
|
23
|
+
this.logLevel = logLevel;
|
|
24
|
+
this.isEnabledForReleaseBuild = isEnabledForReleaseBuild;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Default config for the log
|
|
29
|
+
*/
|
|
30
|
+
static defaultConfig() {
|
|
31
|
+
return new MoEngageLogConfig(DEFAULT_CONFIG_LOG_LEVEL, DEFAULT_CONFIG_RELEASE_BUILD_LOG_ENABLED);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Different Log Level Supported by the {@link MoEngageLogConfig}
|
|
37
|
+
*/
|
|
38
|
+
export const enum MoEngageLogLevel {
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* No logs from the SDK would be printed.
|
|
42
|
+
*/
|
|
43
|
+
NO_LOG = 0,
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Error logs from the SDK would be printed.
|
|
47
|
+
*/
|
|
48
|
+
ERROR = 1,
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Warning logs from the SDK would be printed.
|
|
52
|
+
*/
|
|
53
|
+
WARN = 2,
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Info logs from the SDK would be printed.
|
|
57
|
+
*/
|
|
58
|
+
INFO = 3,
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Debug logs from the SDK would be printed.
|
|
62
|
+
*/
|
|
63
|
+
DEBUG = 4,
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Verbose logs from the SDK would be printed.
|
|
67
|
+
*/
|
|
68
|
+
VERBOSE = 5
|
|
69
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import MoEngageLogger from "../logger/MoEngageLogger";
|
|
1
2
|
import MoEAccountMeta from "../models/MoEAccountMeta";
|
|
2
3
|
import MoECampaignContext from "../models/MoECampaignContext";
|
|
3
4
|
import MoECampaignData from "../models/MoECampaignData";
|
|
@@ -7,7 +8,27 @@ import MoEInAppData from "../models/MoEInAppData";
|
|
|
7
8
|
import MoEInAppNavigation from "../models/MoEInAppNavigation";
|
|
8
9
|
import MoESelfHandledCampaign from "../models/MoESelfHandledCampaign";
|
|
9
10
|
import MoESelfHandledCampaignData from "../models/MoESelfHandledCampaignData";
|
|
10
|
-
import {
|
|
11
|
+
import {
|
|
12
|
+
ACTION_TYPE,
|
|
13
|
+
APP_ID,
|
|
14
|
+
FORMATTED_CAMPAIGN_ID,
|
|
15
|
+
MOE_CAMPAIGN_CONTEXT,
|
|
16
|
+
MOE_CAMPAIGN_ID,
|
|
17
|
+
MOE_CAMPAIGN_NAME,
|
|
18
|
+
MOE_CUSTOM_ACTION,
|
|
19
|
+
MOE_CUSTOM_ACTION_OBJ_ERROR,
|
|
20
|
+
MOE_DISMISSINTERVAL,
|
|
21
|
+
MOE_IN_APP_OBJECT_ERROR,
|
|
22
|
+
MOE_KEY_VALUE_PAIR,
|
|
23
|
+
MOE_NAVIGATION,
|
|
24
|
+
MOE_NAVIGATION_OBJ_ERROR,
|
|
25
|
+
MOE_NAVIGATION_TYPE,
|
|
26
|
+
MOE_PAYLOAD,
|
|
27
|
+
MOE_PLATFORM,
|
|
28
|
+
MOE_SELF_HANDLED,
|
|
29
|
+
MOE_SELF_HANDLED_OBJ_ERROR,
|
|
30
|
+
MOE_NAVIGATION_VALUE
|
|
31
|
+
} from "../utils/MoEConstants";
|
|
11
32
|
import { isValidObject } from "../utils/MoEHelper";
|
|
12
33
|
|
|
13
34
|
/**
|
|
@@ -26,7 +47,7 @@ export function isMoEInAppCampaignValid(obj: { [k: string]: any }) {
|
|
|
26
47
|
}
|
|
27
48
|
}
|
|
28
49
|
catch (error: any) {
|
|
29
|
-
|
|
50
|
+
MoEngageLogger.error(error?.message);
|
|
30
51
|
return false;
|
|
31
52
|
}
|
|
32
53
|
}
|
|
@@ -37,7 +58,7 @@ function getMoEAccountMeta(accountMeta: { [k: string]: any }) {
|
|
|
37
58
|
}
|
|
38
59
|
|
|
39
60
|
function getMoECampaignData(json: { [k: string]: any }) {
|
|
40
|
-
|
|
61
|
+
MoEngageLogger.verbose("getMoECampaignData(): Payload: ", json);
|
|
41
62
|
var campaignId = json[MOE_CAMPAIGN_ID];
|
|
42
63
|
var campaignName = json[MOE_CAMPAIGN_NAME];
|
|
43
64
|
var campaignContext = json[MOE_CAMPAIGN_CONTEXT];
|
|
@@ -86,7 +107,7 @@ export function getMoEInAppData(json: { [k: string]: any }, accountMetaPayload:
|
|
|
86
107
|
* this funtion creates MoESelfHandledCampaignData Object from json
|
|
87
108
|
*/
|
|
88
109
|
export function getMoESelfHandledCampaignData(json: { [k: string]: any }, accountMetaPayload: { [k: string]: any }) {
|
|
89
|
-
|
|
110
|
+
MoEngageLogger.verbose("getMoESelfHandledCampaignData(): Payload: ", json);
|
|
90
111
|
if (isSelfHandledCampaignValid(json)) {
|
|
91
112
|
var campaignData = getMoECampaignData(json);
|
|
92
113
|
var platform = json[MOE_PLATFORM];
|
|
@@ -111,7 +132,7 @@ export function isInAppCustomActionValid(obj: { [k: string]: any }) {
|
|
|
111
132
|
}
|
|
112
133
|
}
|
|
113
134
|
catch (error: any) {
|
|
114
|
-
|
|
135
|
+
MoEngageLogger.error(error?.message);
|
|
115
136
|
return false;
|
|
116
137
|
}
|
|
117
138
|
}
|
|
@@ -153,7 +174,7 @@ export function isSelfHandledCampaignValid(obj: { [k: string]: any }) {
|
|
|
153
174
|
}
|
|
154
175
|
}
|
|
155
176
|
catch (error: any) {
|
|
156
|
-
|
|
177
|
+
MoEngageLogger.error(error?.message);
|
|
157
178
|
return false;
|
|
158
179
|
}
|
|
159
180
|
}
|
|
@@ -171,7 +192,7 @@ export function isNavigationValid(obj: { [k: string]: any }) {
|
|
|
171
192
|
}
|
|
172
193
|
}
|
|
173
194
|
catch (error: any) {
|
|
174
|
-
|
|
195
|
+
MoEngageLogger.error(error?.message);
|
|
175
196
|
return false;
|
|
176
197
|
}
|
|
177
198
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import MoEngageLogger from "../logger/MoEngageLogger";
|
|
1
2
|
import MoEAccountMeta from "../models/MoEAccountMeta";
|
|
2
3
|
import MoEPushCampaign from "../models/MoEPushCampaign";
|
|
3
4
|
import MoEPushPayload from "../models/MoEPushPayload";
|
|
@@ -19,7 +20,7 @@ export function isPushTokenValid(tokenPayload: { [k: string]: any }) {
|
|
|
19
20
|
}
|
|
20
21
|
}
|
|
21
22
|
catch (error: any) {
|
|
22
|
-
|
|
23
|
+
MoEngageLogger.error(error?.message);
|
|
23
24
|
return false;
|
|
24
25
|
}
|
|
25
26
|
|
|
@@ -54,7 +55,7 @@ export function isPushCampaignObjectValid(pushPayload: { [k: string]: any }) {
|
|
|
54
55
|
}
|
|
55
56
|
}
|
|
56
57
|
catch (error: any) {
|
|
57
|
-
|
|
58
|
+
MoEngageLogger.error(error?.message);
|
|
58
59
|
return false;
|
|
59
60
|
}
|
|
60
61
|
|
|
@@ -1,17 +1,8 @@
|
|
|
1
|
+
import MoEngageLogger from "../logger/MoEngageLogger";
|
|
1
2
|
import { MoEngagePermissionType } from "../models/MoEngagePermissionType";
|
|
2
|
-
import {
|
|
3
|
-
getAdIdTrackingJson,
|
|
4
|
-
getAndroidIdTrackingJson,
|
|
5
|
-
getAppIdJson,
|
|
6
|
-
getMoEPushCampaignJson,
|
|
7
|
-
getMoEPushTokenJson,
|
|
8
|
-
getOptOutTrackingJson,
|
|
9
|
-
getPermissionResponseJson,
|
|
10
|
-
getSdkStateJson
|
|
11
|
-
} from "../utils/MoEJsonBuilder";
|
|
3
|
+
import { getPermissionResponseJson } from "../utils/MoEJsonBuilder";
|
|
12
4
|
|
|
13
5
|
const MoEReactBridge = require("react-native").NativeModules.MoEReactBridge;
|
|
14
|
-
const PLATFORM_ANDROID = "android";
|
|
15
6
|
|
|
16
7
|
export class MoERNAndroid {
|
|
17
8
|
static initialize(payload: { [k: string]: any }) {
|
|
@@ -96,7 +87,7 @@ export class MoERNAndroid {
|
|
|
96
87
|
|
|
97
88
|
static validateSDKVersion() {
|
|
98
89
|
MoEReactBridge.validateSdkVersion().catch((error: Error) => {
|
|
99
|
-
|
|
90
|
+
MoEngageLogger.error(error.message);
|
|
100
91
|
});
|
|
101
92
|
}
|
|
102
93
|
|
|
@@ -116,7 +107,7 @@ export class MoERNAndroid {
|
|
|
116
107
|
MoEReactBridge.deviceIdentifierTrackingStatusUpdate(JSON.stringify(payload))
|
|
117
108
|
}
|
|
118
109
|
|
|
119
|
-
static disableAdIdTracking(payload: { [k: string]: any }) {
|
|
110
|
+
static disableAdIdTracking(payload: { [k: string]: any }) {
|
|
120
111
|
MoEReactBridge.deviceIdentifierTrackingStatusUpdate(JSON.stringify(payload))
|
|
121
112
|
}
|
|
122
113
|
|
|
@@ -155,7 +146,4 @@ export class MoERNAndroid {
|
|
|
155
146
|
static disableDeviceIdTracking(payload: { [k: string]: any }) {
|
|
156
147
|
MoEReactBridge.deviceIdentifierTrackingStatusUpdate(JSON.stringify(payload))
|
|
157
148
|
}
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
const PUSH_SERVICE_FCM = "FCM"
|
|
161
|
-
const PUSH_SERVICE_PUSH_KIT = "PUSH_KIT"
|
|
149
|
+
}
|
package/src/platform/MoERNiOS.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import MoEngageLogger from "../logger/MoEngageLogger";
|
|
2
2
|
|
|
3
3
|
const MoEReactBridge = require("react-native").NativeModules.MoEReactBridge;
|
|
4
4
|
|
|
@@ -65,7 +65,7 @@ export class MoERNiOS {
|
|
|
65
65
|
|
|
66
66
|
static validateSDKVersion() {
|
|
67
67
|
MoEReactBridge.validateSDKVersion().catch((error: Error) => {
|
|
68
|
-
|
|
68
|
+
MoEngageLogger.error(error.message);
|
|
69
69
|
});
|
|
70
70
|
}
|
|
71
71
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { MoEngageLogLevel } from "../models/MoEngageLogConfig"
|
|
2
|
+
|
|
1
3
|
export const MOE_PLATFORM = 'platform'
|
|
2
4
|
export const MOE_PAYLOAD = 'payload'
|
|
3
5
|
export const MOE_DATA = 'data'
|
|
@@ -66,3 +68,10 @@ export const KEY_PUSH_CONFIG = "pushConfig";
|
|
|
66
68
|
// PUSH CLICK KEY
|
|
67
69
|
export const SELF_HANDLED_PUSH_REDIRECTION_KEY = "selfHandledPushRedirection";
|
|
68
70
|
|
|
71
|
+
// Default Log Level For MoEngage React Plugin
|
|
72
|
+
export const DEFAULT_CONFIG_LOG_LEVEL = MoEngageLogLevel.INFO;
|
|
73
|
+
|
|
74
|
+
// Default Logging For Production Build
|
|
75
|
+
export const DEFAULT_CONFIG_RELEASE_BUILD_LOG_ENABLED = false;
|
|
76
|
+
|
|
77
|
+
|
|
@@ -6,6 +6,7 @@ import { MOE_LOCATION } from "./MoEConstants";
|
|
|
6
6
|
import { MoEPropertiesToJson} from "./MoEObjectToJson";
|
|
7
7
|
import {MoEngagePermissionType} from "../models/MoEngagePermissionType";
|
|
8
8
|
import MoEInitConfig from "../models/MoEInitConfig";
|
|
9
|
+
import MoEngageLogger from "../logger/MoEngageLogger";
|
|
9
10
|
|
|
10
11
|
export function getInAppCampaignJson(moEInAppData: MoEInAppData, type: string, appId: String) {
|
|
11
12
|
var json: { [k: string]: any } = {
|
|
@@ -37,7 +38,7 @@ export function getSelfHandledJson(moESelfHandledCampaignData: MoESelfHandledCam
|
|
|
37
38
|
platform: moESelfHandledCampaignData.platform
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
|
-
|
|
41
|
+
MoEngageLogger.verbose("getSelfHandledJson(): payload json: ", json);
|
|
41
42
|
return json;
|
|
42
43
|
}
|
|
43
44
|
|
|
@@ -253,8 +254,7 @@ export function getDeviceIdTrackingJson(isDeviceIdTrackingEnabled: Boolean, appI
|
|
|
253
254
|
return json;
|
|
254
255
|
}
|
|
255
256
|
|
|
256
|
-
export function getInitConfigJson(appId: String, initConfig
|
|
257
|
-
if (initConfig == undefined) initConfig = MoEInitConfig.defaultConfig()
|
|
257
|
+
export function getInitConfigJson(appId: String, initConfig: MoEInitConfig) {
|
|
258
258
|
var json: { [k: string]: any } = {
|
|
259
259
|
accountMeta: {
|
|
260
260
|
appId: appId
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import MoEInitConfig from "../models/MoEInitConfig";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* In Memory Cache for Plugin
|
|
5
|
+
*/
|
|
6
|
+
namespace MoEngageGlobalCache {
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Plugin Init Config
|
|
10
|
+
*/
|
|
11
|
+
let initConfig: MoEInitConfig = MoEInitConfig.defaultConfig();
|
|
12
|
+
|
|
13
|
+
export function updateInitConfig(updatedConfig: MoEInitConfig) {
|
|
14
|
+
initConfig = updatedConfig;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function getInitConfig(): MoEInitConfig {
|
|
18
|
+
return initConfig;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export default MoEngageGlobalCache;
|