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.

82 lines (72 loc) 3.01 kB
import MoEngageLogger from "../logger/MoEngageLogger"; import MoEAccountMeta from "../models/MoEAccountMeta"; import MoEPushCampaign from "../models/MoEPushCampaign"; import MoEPushPayload from "../models/MoEPushPayload"; import MoEPushToken from "../models/MoEPushToken"; import { APP_ID, MOE_CLICKED_ACTION, MOE_IS_DEFAULT_ACTION, MOE_PAYLOAD, MOE_PLATFORM, MOE_PUSH_CAMPAIGN_OBJ_ERROR, MOE_PUSH_SERVICE, MOE_PUSH_TOKEN_OBJ_ERROR, MOE_TOKEN, SELF_HANDLED_PUSH_REDIRECTION_KEY } from "../utils/MoEConstants"; /** * * @param obj is a json that has MoEPushToken details * @returns true if obj is a valid MoEPushToken Object else false */ export function isPushTokenValid(tokenPayload: { [k: string]: any }) { try { if (tokenPayload != undefined && tokenPayload[MOE_PLATFORM] != undefined && tokenPayload[MOE_PUSH_SERVICE] != undefined && tokenPayload[MOE_TOKEN] != undefined) return true; else { throw new Error(MOE_PUSH_TOKEN_OBJ_ERROR); } } catch (error: any) { MoEngageLogger.error(error?.message); return false; } } /** * this funtion creates MoEPushToken Object from json */ export function getMoEPushToken(tokenPayload: { [k: string]: any }) { if (isPushTokenValid(tokenPayload)) { var platform = tokenPayload[MOE_PLATFORM]; var pushService = tokenPayload[MOE_PUSH_SERVICE]; var token = tokenPayload[MOE_TOKEN]; return new MoEPushToken(platform, pushService, token) } else return undefined } /** * * @param obj is a json that has MoEPushCampaign details * @returns true if obj is a valid MoEPushCampaign Object else false */ export function isPushCampaignObjectValid(pushPayload: { [k: string]: any }) { try { if (pushPayload[MOE_PLATFORM] != undefined && pushPayload[MOE_PAYLOAD] != undefined) return true; else { throw new Error(MOE_PUSH_CAMPAIGN_OBJ_ERROR); } } catch (error: any) { MoEngageLogger.error(error?.message); return false; } } /** * this funtion creates MoEPushCampaign Object from json */ export function getMoEPushPayload(pushPayload: { [k: string]: any },accountMetaPayload:{ [k: string]: any }) { if (isPushCampaignObjectValid(pushPayload)) { var payload = pushPayload[MOE_PAYLOAD]; var isDefaultAction = pushPayload[MOE_IS_DEFAULT_ACTION]; var clickAction = pushPayload[MOE_CLICKED_ACTION]; var selfHandledPushRedirection = SELF_HANDLED_PUSH_REDIRECTION_KEY in pushPayload ? pushPayload[SELF_HANDLED_PUSH_REDIRECTION_KEY] : false; var pushCampaignPayload = new MoEPushCampaign(payload, isDefaultAction, clickAction, selfHandledPushRedirection); var accountMeta = new MoEAccountMeta(accountMetaPayload[APP_ID]) var platform = pushPayload[MOE_PLATFORM]; return new MoEPushPayload(accountMeta, pushCampaignPayload,platform); } else return undefined }