Skip to content

Commit e5fff6c

Browse files
Merge pull request #104 from Iterable/feature/mob-2492-rn-initialization
[MOB-2492] - Need callback for reporting initialization is done
2 parents b6923e7 + 4c35712 commit e5fff6c

File tree

3 files changed

+33
-16
lines changed

3 files changed

+33
-16
lines changed

ios/RNIterableAPI/RNIterableAPI.m

+7-3
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,18 @@ @interface RCT_EXTERN_REMAP_MODULE(RNIterableAPI, ReactIterableAPI, NSObject)
99

1010
// MARK: - SDK Functions
1111
RCT_EXTERN_METHOD(initializeWithApiKey: (nonnull NSString *) apiKey
12-
config: (nonnull NSDictionary *) config
13-
version: (nonnull NSString *) version)
12+
config: (nonnull NSDictionary *) config
13+
version: (nonnull NSString *) version
14+
resolver: (RCTPromiseResolveBlock) resolve
15+
rejecter: (RCTPromiseRejectBlock) reject)
1416

1517
RCT_EXTERN_METHOD(initialize2WithApiKey: (nonnull NSString *) apiKey
1618
config: (nonnull NSDictionary *) config
1719
apiEndPointOverride: (nonnull NSString *) apiEndPoint
1820
linksEndPointOverride: (nonnull NSString *) linksEndPoint
19-
version: (nonnull NSString *) version)
21+
version: (nonnull NSString *) version
22+
resolver: (RCTPromiseResolveBlock) resolve
23+
rejecter: (RCTPromiseRejectBlock) reject)
2024

2125
RCT_EXTERN_METHOD(setEmail: (NSString *) email)
2226

ios/RNIterableAPI/ReactIterableAPI.swift

+22-9
Original file line numberDiff line numberDiff line change
@@ -50,28 +50,38 @@ class ReactIterableAPI: RCTEventEmitter {
5050
shouldEmit = false
5151
}
5252

53-
@objc(initializeWithApiKey:config:version:)
53+
@objc(initializeWithApiKey:config:version:resolver:rejecter:)
5454
func initialize(apiKey: String,
5555
config configDict: [AnyHashable: Any],
56-
version: String) {
56+
version: String,
57+
resolver: @escaping RCTPromiseResolveBlock,
58+
rejecter: @escaping RCTPromiseRejectBlock) {
5759
ITBInfo()
5860

59-
initialize(withApiKey: apiKey, config: configDict, version: version)
61+
initialize(withApiKey: apiKey,
62+
config: configDict,
63+
version: version,
64+
resolver: resolver,
65+
rejecter: rejecter)
6066
}
6167

62-
@objc(initialize2WithApiKey:config:apiEndPointOverride:linksEndPointOverride:version:)
68+
@objc(initialize2WithApiKey:config:apiEndPointOverride:linksEndPointOverride:version:resolver:rejecter:)
6369
func initialize2(apiKey: String,
6470
config configDict: [AnyHashable: Any],
6571
version: String,
6672
apiEndPointOverride: String,
67-
linksEndPointOverride: String) {
73+
linksEndPointOverride: String,
74+
resolver: @escaping RCTPromiseResolveBlock,
75+
rejecter: @escaping RCTPromiseRejectBlock) {
6876
ITBInfo()
6977

7078
initialize(withApiKey: apiKey,
7179
config: configDict,
7280
version: version,
7381
apiEndPointOverride: apiEndPointOverride,
74-
linksEndPointOverride: linksEndPointOverride)
82+
linksEndPointOverride: linksEndPointOverride,
83+
resolver: resolver,
84+
rejecter: rejecter)
7585
}
7686

7787
@objc(setEmail:)
@@ -411,8 +421,9 @@ class ReactIterableAPI: RCTEventEmitter {
411421
config configDict: [AnyHashable: Any],
412422
version: String,
413423
apiEndPointOverride: String? = nil,
414-
linksEndPointOverride: String? = nil) {
415-
424+
linksEndPointOverride: String? = nil,
425+
resolver: @escaping RCTPromiseResolveBlock,
426+
rejecter: @escaping RCTPromiseRejectBlock) {
416427
ITBInfo()
417428

418429
let launchOptions = createLaunchOptions()
@@ -438,7 +449,9 @@ class ReactIterableAPI: RCTEventEmitter {
438449
launchOptions: launchOptions,
439450
config: iterableConfig,
440451
apiEndPointOverride: apiEndPointOverride,
441-
linksEndPointOverride: linksEndPointOverride)
452+
linksEndPointOverride: linksEndPointOverride) { result in
453+
resolver(result)
454+
}
442455
IterableAPI.setDeviceAttribute(name: "reactNativeSDKVersion", value: version)
443456
}
444457
}

ts/Iterable.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -186,26 +186,26 @@ class Iterable {
186186
* @param {string} apiKey
187187
* @param {IterableConfig} config
188188
*/
189-
static initialize(apiKey: string, config: IterableConfig = new IterableConfig()) {
189+
static initialize(apiKey: string, config: IterableConfig = new IterableConfig()): Promise<boolean> {
190190
console.log("initialize: " + apiKey);
191191

192192
this.setupEventHandlers(config)
193193
const version = this.getVersionFromPackageJson()
194194

195-
RNIterableAPI.initializeWithApiKey(apiKey, config.toDict(), version)
195+
return RNIterableAPI.initializeWithApiKey(apiKey, config.toDict(), version)
196196
}
197197

198198
/**
199199
* DO NOT CALL THIS METHOD.
200200
* This method is used internally to connect to staging environment.
201201
*/
202-
static initialize2(apiKey: string, config: IterableConfig = new IterableConfig(), apiEndPoint: string, linksEndPoint: string) {
202+
static initialize2(apiKey: string, config: IterableConfig = new IterableConfig(), apiEndPoint: string, linksEndPoint: string): Promise<boolean> {
203203
console.log("initialize2: " + apiKey);
204204

205205
this.setupEventHandlers(config)
206206
const version = this.getVersionFromPackageJson()
207207

208-
RNIterableAPI.initialize2WithApiKey(apiKey, config.toDict(), version, apiEndPoint, linksEndPoint)
208+
return RNIterableAPI.initialize2WithApiKey(apiKey, config.toDict(), version, apiEndPoint, linksEndPoint)
209209
}
210210

211211
/**

0 commit comments

Comments
 (0)