@@ -284,19 +284,30 @@ class OSSubscriptionOperationExecutor: OSOperationExecutor {
284
284
}
285
285
286
286
OneSignalLog . onesignalLog ( . LL_VERBOSE, message: " OSSubscriptionOperationExecutor: executeCreateSubscriptionRequest making request: \( request) " )
287
- OneSignalCoreImpl . sharedClient ( ) . execute ( request) { result in
287
+ OneSignalCoreImpl . sharedClient ( ) . execute ( request) { response in
288
288
// On success, remove request from cache (even if not hydrating model), and hydrate model
289
289
self . dispatchQueue. async {
290
290
self . addRequestQueue. removeAll ( where: { $0 == request} )
291
291
OneSignalUserDefaults . initShared ( ) . saveCodeableData ( forKey: OS_SUBSCRIPTION_EXECUTOR_ADD_REQUEST_QUEUE_KEY, withValue: self . addRequestQueue)
292
292
293
- guard let response = result ? [ " subscription " ] as? [ String : Any ] else {
293
+ guard let response = response ? [ " subscription " ] as? [ String : Any ] else {
294
294
OneSignalLog . onesignalLog ( . LL_ERROR, message: " Unabled to parse response to create subscription request " )
295
295
if inBackground {
296
296
OSBackgroundTaskManager . endBackgroundTask ( backgroundTaskIdentifier)
297
297
}
298
298
return
299
299
}
300
+
301
+ let onesignalId = OneSignalUserManagerImpl . sharedInstance. onesignalId;
302
+ if let onesignalId = request. identityModel. onesignalId {
303
+ if let rywToken = response [ " ryw_token " ] as? String
304
+ {
305
+ OSConsistencyManager . shared. setRywToken ( id: onesignalId, key: OSIamFetchOffsetKey . subscriptionUpdate, value: rywToken)
306
+ } else {
307
+ OSConsistencyManager . shared. resolveConditionsWithID ( id: OSIamFetchReadyCondition . CONDITIONID)
308
+ }
309
+ }
310
+
300
311
request. subscriptionModel. hydrate ( response)
301
312
if inBackground {
302
313
OSBackgroundTaskManager . endBackgroundTask ( backgroundTaskIdentifier)
@@ -393,7 +404,7 @@ class OSSubscriptionOperationExecutor: OSOperationExecutor {
393
404
OSBackgroundTaskManager . beginBackgroundTask ( backgroundTaskIdentifier)
394
405
}
395
406
396
- OneSignalCoreImpl . sharedClient ( ) . execute ( request) { _ in
407
+ OneSignalCoreImpl . sharedClient ( ) . execute ( request) { response in
397
408
// On success, remove request from cache. No model hydration occurs.
398
409
// For example, if app restarts and we read in operations between sending this off and getting the response
399
410
self . dispatchQueue. async {
@@ -403,6 +414,15 @@ class OSSubscriptionOperationExecutor: OSOperationExecutor {
403
414
OSBackgroundTaskManager . endBackgroundTask ( backgroundTaskIdentifier)
404
415
}
405
416
}
417
+ let onesignalId = OneSignalUserManagerImpl . sharedInstance. onesignalId;
418
+ if let onesignalId = onesignalId {
419
+ if let rywToken = response ? [ " ryw_token " ] as? String
420
+ {
421
+ OSConsistencyManager . shared. setRywToken ( id: onesignalId, key: OSIamFetchOffsetKey . subscriptionUpdate, value: rywToken)
422
+ } else {
423
+ OSConsistencyManager . shared. resolveConditionsWithID ( id: OSIamFetchReadyCondition . CONDITIONID)
424
+ }
425
+ }
406
426
} onFailure: { error in
407
427
OneSignalLog . onesignalLog ( . LL_ERROR, message: " OSSubscriptionOperationExecutor update subscription request failed with error: \( error. debugDescription) " )
408
428
self . dispatchQueue. async {
0 commit comments