@@ -110,7 +110,7 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
110
110
_payloadData = data
111
111
}
112
112
113
- func setEmail( _ email: String ? , authToken: String ? = nil ) {
113
+ func setEmail( _ email: String ? , authToken: String ? = nil , resultCallback : ( ( Bool ) -> Void ) ? = nil ) {
114
114
ITBInfo ( )
115
115
116
116
if _email == email && email != nil && authToken != nil {
@@ -126,13 +126,14 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
126
126
127
127
_email = email
128
128
_userId = nil
129
+ self . resultCallback = resultCallback
129
130
130
131
storeIdentifierData ( )
131
132
132
133
onLogin ( authToken)
133
134
}
134
135
135
- func setUserId( _ userId: String ? , authToken: String ? = nil ) {
136
+ func setUserId( _ userId: String ? , authToken: String ? = nil , resultCallback : ( ( Bool ) -> Void ) ? = nil ) {
136
137
ITBInfo ( )
137
138
138
139
if _userId == userId && userId != nil && authToken != nil {
@@ -148,6 +149,7 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
148
149
149
150
_email = nil
150
151
_userId = userId
152
+ self . resultCallback = resultCallback
151
153
152
154
storeIdentifierData ( )
153
155
@@ -166,6 +168,7 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
166
168
guard let appName = pushIntegrationName else {
167
169
let errorMessage = " Not registering device token - appName must not be nil "
168
170
ITBError ( errorMessage)
171
+ self . resultCallback ? ( false )
169
172
onFailure ? ( errorMessage, nil )
170
173
return
171
174
}
@@ -180,8 +183,15 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
180
183
sdkVersion: localStorage. sdkVersion)
181
184
requestHandler. register ( registerTokenInfo: registerTokenInfo,
182
185
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
+ )
185
195
}
186
196
187
197
@discardableResult
@@ -410,6 +420,7 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
410
420
411
421
private var config : IterableConfig
412
422
private var apiEndPoint : String
423
+ private var resultCallback : ( ( Bool ) -> Void ) ? = nil
413
424
414
425
/// Following are needed for handling pending notification and deep link.
415
426
static var pendingNotificationResponse : NotificationResponseProtocol ?
@@ -536,6 +547,8 @@ final class InternalIterableAPI: NSObject, PushTrackerProtocol, AuthProvider {
536
547
537
548
if config. autoPushRegistration {
538
549
notificationStateProvider. registerForRemoteNotifications ( )
550
+ } else {
551
+ self . resultCallback ? ( true )
539
552
}
540
553
541
554
_ = inAppManager. scheduleSync ( )
0 commit comments