Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
140 changes: 40 additions & 100 deletions src/core/classes/Iterable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import { IterableConfig } from './IterableConfig';
import { IterableLogger } from './IterableLogger';
import type { IterableAuthFailure } from '../types/IterableAuthFailure';
import { IterableAuthManager } from './IterableAuthManager';
import { IterableApi } from './IterableApi';

const RNEventEmitter = new NativeEventEmitter(RNIterableAPI);

Expand Down Expand Up @@ -139,16 +140,13 @@ export class Iterable {
config: IterableConfig = new IterableConfig()
): Promise<boolean> {
Iterable.savedConfig = config;

Iterable.logger = new IterableLogger(Iterable.savedConfig);

Iterable?.logger?.log('initialize: ' + apiKey);

this.setupEventHandlers();

const version = this.getVersionFromPackageJson();

return RNIterableAPI.initializeWithApiKey(apiKey, config.toDict(), version);
return IterableApi.initializeWithApiKey(apiKey, { config, version });
}

/**
Expand All @@ -163,20 +161,17 @@ export class Iterable {
apiEndPoint: string
): Promise<boolean> {
Iterable.savedConfig = config;

Iterable.logger = new IterableLogger(Iterable.savedConfig);

Iterable?.logger?.log('initialize2: ' + apiKey);

this.setupEventHandlers();

const version = this.getVersionFromPackageJson();

return RNIterableAPI.initialize2WithApiKey(
apiKey,
config.toDict(),
return IterableApi.initialize2WithApiKey(apiKey, {
config,
version,
apiEndPoint
);
apiEndPoint,
});
}

/**
Expand Down Expand Up @@ -229,9 +224,7 @@ export class Iterable {
* ```
*/
static setEmail(email: string | null, authToken?: string | null) {
Iterable?.logger?.log('setEmail: ' + email);

RNIterableAPI.setEmail(email, authToken);
IterableApi.setEmail(email, authToken);
}

/**
Expand All @@ -245,9 +238,7 @@ export class Iterable {
* ```
*/
static getEmail(): Promise<string | null> {
Iterable?.logger?.log('getEmail');

return RNIterableAPI.getEmail();
return IterableApi.getEmail();
}

/**
Expand Down Expand Up @@ -294,9 +285,7 @@ export class Iterable {
* taken
*/
static setUserId(userId?: string | null, authToken?: string | null) {
Iterable?.logger?.log('setUserId: ' + userId);

RNIterableAPI.setUserId(userId, authToken);
IterableApi.setUserId(userId, authToken);
}

/**
Expand All @@ -310,9 +299,7 @@ export class Iterable {
* ```
*/
static getUserId(): Promise<string | null | undefined> {
Iterable?.logger?.log('getUserId');

return RNIterableAPI.getUserId();
return IterableApi.getUserId();
}

/**
Expand All @@ -324,9 +311,7 @@ export class Iterable {
* ```
*/
static disableDeviceForCurrentUser() {
Iterable?.logger?.log('disableDeviceForCurrentUser');

RNIterableAPI.disableDeviceForCurrentUser();
IterableApi.disableDeviceForCurrentUser();
}

/**
Expand All @@ -341,9 +326,7 @@ export class Iterable {
* ```
*/
static getLastPushPayload(): Promise<unknown> {
Iterable?.logger?.log('getLastPushPayload');

return RNIterableAPI.getLastPushPayload();
return IterableApi.getLastPushPayload();
}

/**
Expand All @@ -369,9 +352,7 @@ export class Iterable {
* ```
*/
static getAttributionInfo(): Promise<IterableAttributionInfo | undefined> {
Iterable?.logger?.log('getAttributionInfo');

return RNIterableAPI.getAttributionInfo().then(
return IterableApi.getAttributionInfo().then(
(
dict: {
campaignId: number;
Expand Down Expand Up @@ -417,13 +398,7 @@ export class Iterable {
* ```
*/
static setAttributionInfo(attributionInfo?: IterableAttributionInfo) {
Iterable?.logger?.log('setAttributionInfo');

RNIterableAPI.setAttributionInfo(
attributionInfo as unknown as {
[key: string]: string | number | boolean;
} | null
);
IterableApi.setAttributionInfo(attributionInfo);
}

/**
Expand Down Expand Up @@ -462,15 +437,13 @@ export class Iterable {
appAlreadyRunning: boolean,
dataFields?: unknown
) {
Iterable?.logger?.log('trackPushOpenWithCampaignId');

RNIterableAPI.trackPushOpenWithCampaignId(
IterableApi.trackPushOpenWithCampaignId({
campaignId,
templateId,
messageId as string,
messageId,
appAlreadyRunning,
dataFields as { [key: string]: string | number | boolean } | undefined
);
dataFields,
});
}

/**
Expand Down Expand Up @@ -500,11 +473,7 @@ export class Iterable {
* ```
*/
static updateCart(items: IterableCommerceItem[]) {
Iterable?.logger?.log('updateCart');

RNIterableAPI.updateCart(
items as unknown as { [key: string]: string | number | boolean }[]
);
IterableApi.updateCart(items);
}

/**
Expand All @@ -519,9 +488,7 @@ export class Iterable {
*/
static wakeApp() {
if (Platform.OS === 'android') {
Iterable?.logger?.log('Attempting to wake the app');

RNIterableAPI.wakeApp();
IterableApi.wakeApp();
}
}

Expand Down Expand Up @@ -556,11 +523,7 @@ export class Iterable {
) {
Iterable?.logger?.log('trackPurchase');

RNIterableAPI.trackPurchase(
total,
items as unknown as { [key: string]: string | number | boolean }[],
dataFields as { [key: string]: string | number | boolean } | undefined
);
IterableApi.trackPurchase({ total, items, dataFields });
}

/**
Expand All @@ -586,9 +549,13 @@ export class Iterable {
message: IterableInAppMessage,
location: IterableInAppLocation
) {
Iterable?.logger?.log('trackInAppOpen');

RNIterableAPI.trackInAppOpen(message.messageId, location);
if (!message?.messageId) {
Iterable?.logger?.log(
`Skipping trackInAppOpen because message ID is required, but received ${message}.`
);
return;
}
IterableApi.trackInAppOpen({ message, location });
}

/**
Expand Down Expand Up @@ -617,9 +584,7 @@ export class Iterable {
location: IterableInAppLocation,
clickedUrl: string
) {
Iterable?.logger?.log('trackInAppClick');

RNIterableAPI.trackInAppClick(message.messageId, location, clickedUrl);
IterableApi.trackInAppClick({ message, location, clickedUrl });
}

/**
Expand Down Expand Up @@ -650,14 +615,7 @@ export class Iterable {
source: IterableInAppCloseSource,
clickedUrl?: string
) {
Iterable?.logger?.log('trackInAppClose');

RNIterableAPI.trackInAppClose(
message.messageId,
location,
source,
clickedUrl
);
IterableApi.trackInAppClose({ message, location, source, clickedUrl });
}

/**
Expand Down Expand Up @@ -701,9 +659,7 @@ export class Iterable {
location: IterableInAppLocation,
source: IterableInAppDeleteSource
) {
Iterable?.logger?.log('inAppConsume');

RNIterableAPI.inAppConsume(message.messageId, location, source);
IterableApi.inAppConsume(message, location, source);
}

/**
Expand All @@ -727,12 +683,7 @@ export class Iterable {
* ```
*/
static trackEvent(name: string, dataFields?: unknown) {
Iterable?.logger?.log('trackEvent');

RNIterableAPI.trackEvent(
name,
dataFields as { [key: string]: string | number | boolean } | undefined
);
IterableApi.trackEvent({ name, dataFields });
}

/**
Expand Down Expand Up @@ -778,12 +729,7 @@ export class Iterable {
dataFields: unknown | undefined,
mergeNestedObjects: boolean
) {
Iterable?.logger?.log('updateUser');

RNIterableAPI.updateUser(
dataFields as { [key: string]: string | number | boolean },
mergeNestedObjects
);
IterableApi.updateUser(dataFields, mergeNestedObjects);
}

/**
Expand All @@ -804,9 +750,7 @@ export class Iterable {
* ```
*/
static updateEmail(email: string, authToken?: string) {
Iterable?.logger?.log('updateEmail');

RNIterableAPI.updateEmail(email, authToken);
IterableApi.updateEmail(email, authToken);
}

/**
Expand Down Expand Up @@ -888,9 +832,7 @@ export class Iterable {
*/
/* eslint-enable tsdoc/syntax */
static handleAppLink(link: string): Promise<boolean> {
Iterable?.logger?.log('handleAppLink');

return RNIterableAPI.handleAppLink(link);
return IterableApi.handleAppLink(link);
}

/**
Expand Down Expand Up @@ -935,16 +877,14 @@ export class Iterable {
campaignId: number,
templateId: number
) {
Iterable?.logger?.log('updateSubscriptions');

RNIterableAPI.updateSubscriptions(
IterableApi.updateSubscriptions({
emailListIds,
unsubscribedChannelIds,
unsubscribedMessageTypeIds,
subscribedMessageTypeIds,
campaignId,
templateId
);
templateId,
});
}

/**
Expand Down Expand Up @@ -1011,7 +951,7 @@ export class Iterable {
const message = IterableInAppMessage.fromDict(messageDict);
// MOB-10423: Check if we can use chain operator (?.) here instead
const result = Iterable.savedConfig.inAppHandler!(message);
RNIterableAPI.setInAppShowResponse(result);
IterableApi.setInAppShowResponse(result);
}
);
}
Expand Down
Loading