Skip to content

Commit 6a14f63

Browse files
committed
Change for supporting callback feature on setEmail/setUserId
1 parent fe72db1 commit 6a14f63

File tree

2 files changed

+21
-8
lines changed

2 files changed

+21
-8
lines changed

swift-sdk/Internal/InternalIterableAPI.swift

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
110110
_payloadData = data
111111
}
112112

113-
func setEmail(_ email: String?, authToken: String? = nil) {
113+
func setEmail(_ email: String?, authToken: String? = nil, resultCallback: ((Bool) -> Void)? = nil) {
114114
ITBInfo()
115115

116116
if _email == email && email != nil && authToken != nil {
@@ -126,13 +126,14 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
126126

127127
_email = email
128128
_userId = nil
129+
self.resultCallback = resultCallback
129130

130131
storeIdentifierData()
131132

132133
onLogin(authToken)
133134
}
134135

135-
func setUserId(_ userId: String?, authToken: String? = nil) {
136+
func setUserId(_ userId: String?, authToken: String? = nil, resultCallback: ((Bool) -> Void)? = nil) {
136137
ITBInfo()
137138

138139
if _userId == userId && userId != nil && authToken != nil {
@@ -148,6 +149,7 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
148149

149150
_email = nil
150151
_userId = userId
152+
self.resultCallback = resultCallback
151153

152154
storeIdentifierData()
153155

@@ -166,6 +168,7 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
166168
guard let appName = pushIntegrationName else {
167169
let errorMessage = "Not registering device token - appName must not be nil"
168170
ITBError(errorMessage)
171+
self.resultCallback?(false)
169172
onFailure?(errorMessage, nil)
170173
return
171174
}
@@ -180,8 +183,15 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
180183
sdkVersion: localStorage.sdkVersion)
181184
requestHandler.register(registerTokenInfo: registerTokenInfo,
182185
notificationStateProvider: notificationStateProvider,
183-
onSuccess: onSuccess,
184-
onFailure: onFailure)
186+
onSuccess: { (_ data: [AnyHashable: Any]?) in
187+
self.resultCallback?(true)
188+
onSuccess?(data)
189+
},
190+
onFailure: { (_ reason: String?, _ data: Data?) in
191+
self.resultCallback?(false)
192+
onFailure?(reason, data)
193+
}
194+
)
185195
}
186196

187197
@discardableResult
@@ -410,6 +420,7 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
410420

411421
private var config: IterableConfig
412422
private var apiEndPoint: String
423+
private var resultCallback: ((Bool) -> Void)? = nil
413424

414425
/// Following are needed for handling pending notification and deep link.
415426
static var pendingNotificationResponse: NotificationResponseProtocol?
@@ -536,6 +547,8 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
536547

537548
if config.autoPushRegistration {
538549
notificationStateProvider.registerForRemoteNotifications()
550+
} else {
551+
self.resultCallback?(true)
539552
}
540553

541554
_ = inAppManager.scheduleSync()

swift-sdk/IterableAPI.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,12 +130,12 @@ public final class IterableAPI: NSObject {
130130

131131
// MARK: - SDK
132132

133-
public static func setEmail(_ email: String?, _ authToken: String? = nil) {
134-
internalImplementation?.setEmail(email, authToken: authToken)
133+
public static func setEmail(_ email: String?, _ authToken: String? = nil, _ successCallback: ((Bool) -> Void)? = nil) {
134+
internalImplementation?.setEmail(email, authToken: authToken, resultCallback: resultCallback)
135135
}
136136

137-
public static func setUserId(_ userId: String?, _ authToken: String? = nil) {
138-
internalImplementation?.setUserId(userId, authToken: authToken)
137+
public static func setUserId(_ userId: String?, _ authToken: String? = nil, _ successCallback: ((Bool) -> Void)? = nil) {
138+
internalImplementation?.setUserId(userId, authToken: authToken, resultCallback: resultCallback)
139139
}
140140

141141
/// Handle a Universal Link

0 commit comments

Comments
 (0)