@@ -47,6 +47,7 @@ class OSSubscriptionOperationExecutor: OSOperationExecutor {
4747 delta. model = modelInStore
4848 } else {
4949 // The model does not exist, drop this Delta
50+ OneSignalLog . onesignalLog ( . LL_ERROR, message: " OSSubscriptionOperationExecutor.init dropped \( delta) " )
5051 deltaQueue. remove ( at: index)
5152 }
5253 }
@@ -75,14 +76,15 @@ class OSSubscriptionOperationExecutor: OSOperationExecutor {
7576 subscriptionModels [ request. subscriptionModel. modelId] = request. subscriptionModel
7677 }
7778 // 2. Hook up the identity model
78- if let identityModel = OneSignalUserManagerImpl . sharedInstance. identityModelStore . getModel ( modelId : request. identityModel. modelId) {
79- // a. The model exist in the store
79+ if let identityModel = OneSignalUserManagerImpl . sharedInstance. getIdentityModel ( request. identityModel. modelId) {
80+ // a. The model exist in the repo
8081 request. identityModel = identityModel
81- } else if let identityModel = OSUserExecutor . identityModels [ request. identityModel. modelId] {
82- // b. The model exist in the user executor
83- request. identityModel = identityModel
84- } else if !request. prepareForExecution ( ) {
85- // The model do not exist AND this request cannot be sent, drop this Request
82+ } else if request. prepareForExecution ( ) {
83+ // b. The request can be sent, add the model to the repo
84+ OneSignalUserManagerImpl . sharedInstance. addIdentityModelToRepo ( request. identityModel)
85+ } else {
86+ // c. The model do not exist AND this request cannot be sent, drop this Request
87+ OneSignalLog . onesignalLog ( . LL_WARN, message: " OSSubscriptionOperationExecutor.init dropped: \( request) " )
8688 continue
8789 }
8890 requestQueue. append ( request)
@@ -104,6 +106,7 @@ class OSSubscriptionOperationExecutor: OSOperationExecutor {
104106 request. subscriptionModel = subscriptionModel
105107 } else if !request. prepareForExecution ( ) {
106108 // 3. The model does not exist AND this request cannot be sent, drop this Request
109+ OneSignalLog . onesignalLog ( . LL_ERROR, message: " OSSubscriptionOperationExecutor.init dropped \( request) " )
107110 removeRequestQueue. remove ( at: index)
108111 }
109112 }
@@ -124,6 +127,7 @@ class OSSubscriptionOperationExecutor: OSOperationExecutor {
124127 request. subscriptionModel = subscriptionModel
125128 } else if !request. prepareForExecution ( ) {
126129 // 3. The models do not exist AND this request cannot be sent, drop this Request
130+ OneSignalLog . onesignalLog ( . LL_ERROR, message: " OSSubscriptionOperationExecutor.init dropped \( request) " )
127131 updateRequestQueue. remove ( at: index)
128132 }
129133 }
@@ -161,29 +165,34 @@ class OSSubscriptionOperationExecutor: OSOperationExecutor {
161165 OneSignalLog . onesignalLog ( . LL_VERBOSE, message: " OSSubscriptionOperationExecutor processDeltaQueue with queue: \( deltaQueue) " )
162166 }
163167 for delta in deltaQueue {
164- guard let model = delta. model as? OSSubscriptionModel else {
165- // Log error
168+ guard let subModel = delta. model as? OSSubscriptionModel
169+ else {
170+ OneSignalLog . onesignalLog ( . LL_ERROR, message: " OSSubscriptionOperationExecutor.processDeltaQueue dropped \( delta) " )
166171 continue
167172 }
168173
169174 switch delta. name {
170175 case OS_ADD_SUBSCRIPTION_DELTA:
171- let request = OSRequestCreateSubscription (
172- subscriptionModel: model,
173- identityModel: OneSignalUserManagerImpl . sharedInstance. user. identityModel // TODO: Make sure this is ok
174- )
175- addRequestQueue. append ( request)
176-
176+ // Only create the request if the identity model exists
177+ if let identityModel = OneSignalUserManagerImpl . sharedInstance. getIdentityModel ( delta. identityModelId) {
178+ let request = OSRequestCreateSubscription (
179+ subscriptionModel: subModel,
180+ identityModel: identityModel
181+ )
182+ addRequestQueue. append ( request)
183+ } else {
184+ OneSignalLog . onesignalLog ( . LL_ERROR, message: " OSSubscriptionOperationExecutor.processDeltaQueue dropped \( delta) " )
185+ }
177186 case OS_REMOVE_SUBSCRIPTION_DELTA:
178187 let request = OSRequestDeleteSubscription (
179- subscriptionModel: model
188+ subscriptionModel: subModel
180189 )
181190 removeRequestQueue. append ( request)
182191
183192 case OS_UPDATE_SUBSCRIPTION_DELTA:
184193 let request = OSRequestUpdateSubscription (
185194 subscriptionObject: [ delta. property: delta. value] ,
186- subscriptionModel: model
195+ subscriptionModel: subModel
187196 )
188197 updateRequestQueue. append ( request)
189198
0 commit comments