Skip to content

Commit 9731060

Browse files
committed
fixes
1 parent ab62c99 commit 9731060

File tree

4 files changed

+37
-31
lines changed

4 files changed

+37
-31
lines changed

swift-sdk/Constants.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,6 @@ public enum IterableCustomActionName: String, CaseIterable {
381381

382382
public typealias ITEActionBlock = (String?) -> Void
383383
public typealias ITBURLCallback = (URL?) -> Void
384-
public typealias OnCompletionHandler = (Bool) -> Void
385384
public typealias OnSuccessHandler = (_ data: [AnyHashable: Any]?) -> Void
386385
public typealias OnFailureHandler = (_ reason: String?, _ data: Data?) -> Void
387386
public typealias UrlHandler = (URL) -> Bool

swift-sdk/Internal/InternalIterableAPI.swift

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
111111
_payloadData = data
112112
}
113113

114-
func setEmail(_ email: String?, authToken: String? = nil, onCompletion: OnCompletionHandler? = nil) {
114+
func setEmail(_ email: String?, authToken: String? = nil, successHandler: OnSuccessHandler? = nil, failureHandler: OnFailureHandler? = nil) {
115115
ITBInfo()
116116

117117
if _email == email && email != nil && authToken != nil {
@@ -127,14 +127,15 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
127127

128128
_email = email
129129
_userId = nil
130-
_resultCallback = onCompletion
130+
_successCallback = successHandler
131+
_failureCallback = failureHandler
131132

132133
storeIdentifierData()
133134

134135
onLogin(authToken)
135136
}
136137

137-
func setUserId(_ userId: String?, authToken: String? = nil, onCompletion: OnCompletionHandler? = nil) {
138+
func setUserId(_ userId: String?, authToken: String? = nil, successHandler: OnSuccessHandler? = nil, failureHandler: OnFailureHandler? = nil) {
138139
ITBInfo()
139140

140141
if _userId == userId && userId != nil && authToken != nil {
@@ -150,7 +151,8 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
150151

151152
_email = nil
152153
_userId = userId
153-
_resultCallback = onCompletion
154+
_successCallback = successHandler
155+
_failureCallback = failureHandler
154156

155157
storeIdentifierData()
156158

@@ -169,7 +171,7 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
169171
guard let appName = pushIntegrationName else {
170172
let errorMessage = "Not registering device token - appName must not be nil"
171173
ITBError(errorMessage)
172-
_resultCallback?(false)
174+
_failureCallback?(errorMessage, nil)
173175
onFailure?(errorMessage, nil)
174176
return
175177
}
@@ -185,11 +187,11 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
185187
requestHandler.register(registerTokenInfo: registerTokenInfo,
186188
notificationStateProvider: notificationStateProvider,
187189
onSuccess: { (_ data: [AnyHashable: Any]?) in
188-
self._resultCallback?(true)
190+
self._successCallback?(data)
189191
onSuccess?(data)
190192
},
191193
onFailure: { (_ reason: String?, _ data: Data?) in
192-
self._resultCallback?(false)
194+
self._failureCallback?(reason, data)
193195
onFailure?(reason, data)
194196
}
195197
)
@@ -438,7 +440,8 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
438440
private var _email: String?
439441
private var _payloadData: [AnyHashable: Any]?
440442
private var _userId: String?
441-
private var _resultCallback: OnCompletionHandler? = nil
443+
private var _successCallback: OnSuccessHandler? = nil
444+
private var _failureCallback: OnFailureHandler? = nil
442445

443446

444447
/// the hex representation of this device token
@@ -550,7 +553,7 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
550553
if config.autoPushRegistration {
551554
notificationStateProvider.registerForRemoteNotifications()
552555
} else {
553-
_resultCallback?(true)
556+
_successCallback?([:])
554557
}
555558

556559
_ = inAppManager.scheduleSync()

swift-sdk/IterableAPI.swift

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -129,20 +129,12 @@ import UIKit
129129

130130
// MARK: - SDK
131131

132-
public static func setEmail(_ email: String?, _ authToken: String? = nil, _ onCompletion: OnCompletionHandler? = nil) {
133-
implementation?.setEmail(email, authToken: authToken, onCompletion: onCompletion)
132+
public static func setEmail(_ email: String?, _ authToken: String? = nil, _ successHandler: OnSuccessHandler? = nil, _ failureHandler: OnFailureHandler? = nil) {
133+
implementation?.setEmail(email, authToken: authToken, successHandler: successHandler, failureHandler: failureHandler)
134134
}
135135

136-
public static func setUserId(_ userId: String?, _ authToken: String? = nil, _ onCompletion: OnCompletionHandler? = nil) {
137-
implementation?.setUserId(userId, authToken: authToken, onCompletion: onCompletion)
138-
}
139-
140-
public static func setEmail(_ email: String?, _ authToken: String? = nil) {
141-
implementation?.setEmail(email, authToken: authToken, onCompletion: nil)
142-
}
143-
144-
public static func setUserId(_ userId: String?, _ authToken: String? = nil) {
145-
implementation?.setUserId(userId, authToken: authToken, onCompletion: nil)
136+
public static func setUserId(_ userId: String?, _ authToken: String? = nil, _ successHandler: OnSuccessHandler? = nil, _ failureHandler: OnFailureHandler? = nil) {
137+
implementation?.setUserId(userId, authToken: authToken, successHandler: successHandler, failureHandler: failureHandler)
146138
}
147139

148140
/// Handle a Universal Link

tests/unit-tests/IterableAPITests.swift

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -172,11 +172,14 @@ class IterableAPITests: XCTestCase {
172172
let config = IterableConfig()
173173
let networkSession = MockNetworkSession(statusCode: 200)
174174
let internalAPI = InternalIterableAPI.initializeForTesting(apiKey: IterableAPITests.apiKey, config: config, networkSession: networkSession)
175-
176-
internalAPI.setEmail("[email protected]") { success in
175+
176+
internalAPI.setEmail("[email protected]", successHandler: { success in
177177
XCTAssertNotNil(success)
178178
expectation.fulfill()
179-
}
179+
}, failureHandler: { _, _ in
180+
XCTFail("Failed to set email")
181+
expectation.fulfill()
182+
})
180183

181184
wait(for: [expectation], timeout: testExpectationTimeout)
182185
}
@@ -188,10 +191,13 @@ class IterableAPITests: XCTestCase {
188191
let networkSession = MockNetworkSession(statusCode: 400)
189192
let internalAPI = InternalIterableAPI.initializeForTesting(apiKey: IterableAPITests.apiKey, config: config, networkSession: networkSession)
190193

191-
internalAPI.setEmail("invalid_email") { error in
194+
internalAPI.setEmail("invalid_email", successHandler: { success in
195+
XCTFail("Email should not be set successfully")
196+
expectation.fulfill()
197+
}, failureHandler: { _, error in
192198
XCTAssertNotNil(error)
193199
expectation.fulfill()
194-
}
200+
})
195201

196202
wait(for: [expectation], timeout: testExpectationTimeout)
197203
}
@@ -203,10 +209,13 @@ class IterableAPITests: XCTestCase {
203209
let networkSession = MockNetworkSession(statusCode: 200)
204210
let internalAPI = InternalIterableAPI.initializeForTesting(apiKey: IterableAPITests.apiKey, config: config, networkSession: networkSession)
205211

206-
internalAPI.setUserId("user123") { success in
212+
internalAPI.setUserId("user123", successHandler: { success in
207213
XCTAssertNil(success)
208214
expectation.fulfill()
209-
}
215+
}, failureHandler: { _, _ in
216+
XCTFail("Failed to set user ID")
217+
expectation.fulfill()
218+
})
210219

211220
wait(for: [expectation], timeout: testExpectationTimeout)
212221
}
@@ -218,10 +227,13 @@ class IterableAPITests: XCTestCase {
218227
let networkSession = MockNetworkSession(statusCode: 400)
219228
let internalAPI = InternalIterableAPI.initializeForTesting(apiKey: IterableAPITests.apiKey, config: config, networkSession: networkSession)
220229

221-
internalAPI.setUserId("user123") { error in
230+
internalAPI.setUserId("user123", successHandler: { success in
231+
XCTFail("User ID should not be set successfully")
232+
expectation.fulfill()
233+
}, failureHandler: { _, error in
222234
XCTAssertNotNil(error)
223235
expectation.fulfill()
224-
}
236+
})
225237

226238
wait(for: [expectation], timeout: testExpectationTimeout)
227239
}

0 commit comments

Comments
 (0)