UNPKG

react-native-moengage

Version:

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.

328 lines (303 loc) 8.82 kB
import MoEClickData from "../models/MoEClickData"; import MoEInAppData from "../models/MoEInAppData"; import MoEProperties from "../models/MoEProperties"; import MoESelfHandledCampaignData from "../models/MoESelfHandledCampaignData"; import { MOE_LOCATION } from "./MoEConstants"; import { MoEPropertiesToJson } from "./MoEObjectToJson"; import { MoEngagePermissionType } from "../models/MoEngagePermissionType"; import MoEInitConfig from "../models/MoEInitConfig"; import MoEngageLogger from "../logger/MoEngageLogger"; import { MoEngageNudgePosition } from "../models/MoEngageNudgePosition"; import { MoESupportedAttributes } from "../models/MoESupportedAttributes"; import MoESelfHandledCampaign from "../models/MoESelfHandledCampaign"; import MoEInAppRules from "../models/MoEInAppRules"; import { ACCOUNT_META, APP_ID, MOE_DATA, USER_IDENTITY, USER_UNIQUE_IDENTITY } from "./MoEConstants"; export function getInAppCampaignJson(moEInAppData: MoEInAppData, type: string, appId: String) { var json: { [k: string]: any } = { accountMeta: { appId: appId }, data: { type: type, campaignName: moEInAppData.campaignData.campaignName, campaignId: moEInAppData.campaignData.campaignId, campaignContext: moEInAppData.campaignData.context, platform: moEInAppData.platform } } return JSON.stringify(json); } export function getSelfHandledJson(moESelfHandledCampaignData: MoESelfHandledCampaignData, type: string, appId: String) { var json: { [k: string]: any } = { accountMeta: { appId: appId }, data: { type: type, campaignName: moESelfHandledCampaignData.campaignData.campaignName, campaignId: moESelfHandledCampaignData.campaignData.campaignId, campaignContext: moESelfHandledCampaignData.campaignData.context.attributes, selfHandled: getSelfHandledCampaignJson(moESelfHandledCampaignData.campaign), platform: moESelfHandledCampaignData.platform } } MoEngageLogger.verbose("getSelfHandledJson(): payload json: ", json); return JSON.stringify(json); } export function getInAppClickDataJson(moEClickData: MoEClickData, type: string, appId: String) { var json: { [k: string]: any } = { accountMeta: { appId: appId }, data: { type: type, campaignName: moEClickData.campaignData.campaignName, campaignId: moEClickData.campaignData.campaignId, campaignContext: moEClickData.campaignData.context, platform: moEClickData.platform } } return JSON.stringify(json); } export function getMoEPropertiesJson(moEProperties: MoEProperties, eventName: String, appId: String) { var json: { [k: string]: any } = { accountMeta: { appId: appId }, data: { ...MoEPropertiesToJson(moEProperties), eventName, } } return JSON.stringify(json); } export function getMoEPushCampaignJson(pushPayload: object, service: string, appId: String) { var json: { [k: string]: any } = { accountMeta: { appId: appId }, data: { payload: pushPayload, service: service } } return JSON.stringify(json); } export function getMoEPushTokenJson(pushToken: string, pushService: string, platform: string, appId: String) { var json: { [k: string]: any } = { accountMeta: { appId: appId }, data: { token: pushToken, service: pushService, platform: platform } } return JSON.stringify(json); } export function getAliasJson(alias: String, appId: String) { var json: { [k: string]: any } = { accountMeta: { appId: appId }, data: { alias: alias } } return JSON.stringify(json); } export function getAppStatusJson(appStatus: String, appId: String) { var json: { [k: string]: any } = { accountMeta: { appId: appId }, data: { appStatus: appStatus } } return JSON.stringify(json); } export function getUserAttributeJson(name: String, value: MoESupportedAttributes, type: String, appId: String) { var json: { [k: string]: any } = { accountMeta: { appId: appId }, data: { attributeName: name, attributeValue: value, type: type, } } return JSON.stringify(json); } export function getUserLocAttributeJson(name: String, latitude: Number, longitude: Number, appId: String) { var json: { [k: string]: any } = { accountMeta: { appId: appId }, data: { attributeName: name, type: MOE_LOCATION, locationAttribute: { latitude: latitude, longitude: longitude, } } } return JSON.stringify(json); } export function getInAppContextJson(contexts: Array<String>, appId: String) { var json: { [k: string]: any } = { accountMeta: { appId: appId }, data: { contexts: contexts } } return JSON.stringify(json); } export function getSdkStateJson(isSdkEnabled: Boolean, appId: String) { var json: { [k: string]: any } = { accountMeta: { appId: appId }, data: { isSdkEnabled: isSdkEnabled, } } return JSON.stringify(json); } export function getAdIdTrackingJson(isAdIdTrackingEnabled: Boolean, appId: String) { var json: { [k: string]: any } = { accountMeta: { appId: appId }, data: { isAdIdTrackingEnabled: isAdIdTrackingEnabled, } } return JSON.stringify(json); } export function getAndroidIdTrackingJson(isAndroidIdTrackingEnabled: Boolean, appId: String) { var json: { [k: string]: any } = { accountMeta: { appId: appId }, data: { isAndroidIdTrackingEnabled: isAndroidIdTrackingEnabled } } return JSON.stringify(json); } export function getAppIdJson(appId: String) { var json: { [k: string]: any } = { accountMeta: { appId: appId } } return JSON.stringify(json); } export function getOptOutTrackingJson(type: string, state: boolean, appId: string) { var json: { [k: string]: any } = { accountMeta: { appId: appId }, data: { type: type, state: state } } return JSON.stringify(json); } export function getPermissionResponseJson(isGranted: boolean, permissionType: MoEngagePermissionType) { let json: { [k: string]: any } = { isGranted: isGranted, type: permissionType.toLowerCase() } return JSON.stringify(json); } export function getPushPermissionRequestCountJson(count: number, appId: String) { var json: { [k: string]: any } = { accountMeta: { appId: appId }, data: { pushOptinInAttemptCount: count } } return JSON.stringify(json); } export function getDeviceIdTrackingJson(isDeviceIdTrackingEnabled: Boolean, appId: String) { var json: { [k: string]: any } = { accountMeta: { appId: appId }, data: { isDeviceIdTrackingEnabled: isDeviceIdTrackingEnabled } } return JSON.stringify(json); } export function getInitConfigJson(appId: String, initConfig: MoEInitConfig) { var json: { [k: string]: any } = { accountMeta: { appId: appId }, initConfig: { pushConfig: { shouldDeliverCallbackOnForegroundClick: initConfig.pushConfig.shouldDeliverCallbackOnForegroundClick }, analyticsConfig: { shouldTrackUserAttributeBooleanAsNumber: initConfig.analyticsConfig.shouldTrackUserAttributeBoolAsNumber } } } return JSON.stringify(json); } export function getNudgeDisplayJson(nudgePosition: MoEngageNudgePosition, appId: String) { var json: { [k: string]: any } = { accountMeta: { appId: appId }, data: { position: nudgePosition.toString() } } return JSON.stringify(json); } export function getSelfHandledCampaignJson(moESelfHandledCampaign: MoESelfHandledCampaign) { var json: { [k: string]: any } = { dismissInterval: moESelfHandledCampaign.dismissInterval, displayRules: moESelfHandledCampaign.displayRules, payload: moESelfHandledCampaign.payload } MoEngageLogger.verbose("getSelfHandledCampaignJson(): payload json: ", json); return json; } export function getDisplayRulesJson(displayRules: MoEInAppRules) { var json: { [k: string]: any } = { contexts: displayRules.contexts, screenName: displayRules.screenName, screenNames: displayRules.screenNames } MoEngageLogger.verbose("getDisplayRulesJson(): payload json: ", json); return json; } export function getIdentifyUserPayload(identity: string | { [k: string]: string }, appId: string): string { var payload: { [k: string]: any } = { [ACCOUNT_META]: { [APP_ID]: appId }, }; if (typeof identity === 'string') { payload[MOE_DATA] = { [USER_IDENTITY]: { [USER_UNIQUE_IDENTITY]: identity } }; } else { payload[MOE_DATA] = { [USER_IDENTITY]: identity }; } return JSON.stringify(payload); }