Skip to content

Commit 8f66d01

Browse files
Start offline requests in new thread instead of relying on Core data.
1 parent 6bd470d commit 8f66d01

File tree

1 file changed

+71
-51
lines changed

1 file changed

+71
-51
lines changed

swift-sdk/Internal/RequestHandler.swift

Lines changed: 71 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,11 @@ class RequestHandler: RequestHandlerProtocol {
8989
func updateCart(items: [CommerceItem],
9090
onSuccess: OnSuccessHandler?,
9191
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError> {
92-
chooseRequestProcessor().updateCart(items: items,
93-
onSuccess: onSuccess,
94-
onFailure: onFailure)
92+
Pending<SendRequestValue, SendRequestError>.inBackgroundThread {
93+
self.chooseRequestProcessor().updateCart(items: items,
94+
onSuccess: onSuccess,
95+
onFailure: onFailure)
96+
}
9597
}
9698

9799
@discardableResult
@@ -102,13 +104,15 @@ class RequestHandler: RequestHandlerProtocol {
102104
templateId: NSNumber?,
103105
onSuccess: OnSuccessHandler?,
104106
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError> {
105-
chooseRequestProcessor().trackPurchase(total,
106-
items: items,
107-
dataFields: dataFields,
108-
campaignId: campaignId,
109-
templateId: templateId,
110-
onSuccess: onSuccess,
111-
onFailure: onFailure)
107+
Pending<SendRequestValue, SendRequestError>.inBackgroundThread {
108+
self.chooseRequestProcessor().trackPurchase(total,
109+
items: items,
110+
dataFields: dataFields,
111+
campaignId: campaignId,
112+
templateId: templateId,
113+
onSuccess: onSuccess,
114+
onFailure: onFailure)
115+
}
112116
}
113117

114118
@discardableResult
@@ -119,24 +123,28 @@ class RequestHandler: RequestHandlerProtocol {
119123
dataFields: [AnyHashable: Any]?,
120124
onSuccess: OnSuccessHandler?,
121125
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError> {
122-
chooseRequestProcessor().trackPushOpen(campaignId,
123-
templateId: templateId,
124-
messageId: messageId,
125-
appAlreadyRunning: appAlreadyRunning,
126-
dataFields: dataFields,
127-
onSuccess: onSuccess,
128-
onFailure: onFailure)
126+
Pending<SendRequestValue, SendRequestError>.inBackgroundThread {
127+
self.chooseRequestProcessor().trackPushOpen(campaignId,
128+
templateId: templateId,
129+
messageId: messageId,
130+
appAlreadyRunning: appAlreadyRunning,
131+
dataFields: dataFields,
132+
onSuccess: onSuccess,
133+
onFailure: onFailure)
134+
}
129135
}
130136

131137
@discardableResult
132138
func track(event: String,
133139
dataFields: [AnyHashable: Any]?,
134140
onSuccess: OnSuccessHandler?,
135141
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError> {
136-
chooseRequestProcessor().track(event: event,
137-
dataFields: dataFields,
138-
onSuccess: onSuccess,
139-
onFailure: onFailure)
142+
Pending<SendRequestValue, SendRequestError>.inBackgroundThread {
143+
self.chooseRequestProcessor().track(event: event,
144+
dataFields: dataFields,
145+
onSuccess: onSuccess,
146+
onFailure: onFailure)
147+
}
140148
}
141149

142150
@discardableResult
@@ -154,11 +162,13 @@ class RequestHandler: RequestHandlerProtocol {
154162
inboxSessionId: String?,
155163
onSuccess: OnSuccessHandler?,
156164
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError> {
157-
chooseRequestProcessor().trackInAppOpen(message,
158-
location: location,
159-
inboxSessionId: inboxSessionId,
160-
onSuccess: onSuccess,
161-
onFailure: onFailure)
165+
Pending<SendRequestValue, SendRequestError>.inBackgroundThread {
166+
self.chooseRequestProcessor().trackInAppOpen(message,
167+
location: location,
168+
inboxSessionId: inboxSessionId,
169+
onSuccess: onSuccess,
170+
onFailure: onFailure)
171+
}
162172
}
163173

164174
@discardableResult
@@ -168,12 +178,14 @@ class RequestHandler: RequestHandlerProtocol {
168178
clickedUrl: String,
169179
onSuccess: OnSuccessHandler?,
170180
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError> {
171-
chooseRequestProcessor().trackInAppClick(message,
172-
location: location,
173-
inboxSessionId: inboxSessionId,
174-
clickedUrl: clickedUrl,
175-
onSuccess: onSuccess,
176-
onFailure: onFailure)
181+
Pending<SendRequestValue, SendRequestError>.inBackgroundThread {
182+
self.chooseRequestProcessor().trackInAppClick(message,
183+
location: location,
184+
inboxSessionId: inboxSessionId,
185+
clickedUrl: clickedUrl,
186+
onSuccess: onSuccess,
187+
onFailure: onFailure)
188+
}
177189
}
178190

179191
@discardableResult
@@ -184,13 +196,15 @@ class RequestHandler: RequestHandlerProtocol {
184196
clickedUrl: String?,
185197
onSuccess: OnSuccessHandler?,
186198
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError> {
187-
chooseRequestProcessor().trackInAppClose(message,
188-
location: location,
189-
inboxSessionId: inboxSessionId,
190-
source: source,
191-
clickedUrl: clickedUrl,
192-
onSuccess: onSuccess,
193-
onFailure: onFailure)
199+
Pending<SendRequestValue, SendRequestError>.inBackgroundThread {
200+
self.chooseRequestProcessor().trackInAppClose(message,
201+
location: location,
202+
inboxSessionId: inboxSessionId,
203+
source: source,
204+
clickedUrl: clickedUrl,
205+
onSuccess: onSuccess,
206+
onFailure: onFailure)
207+
}
194208
}
195209

196210
@discardableResult
@@ -208,18 +222,22 @@ class RequestHandler: RequestHandlerProtocol {
208222
func track(inAppDelivery message: IterableInAppMessage,
209223
onSuccess: OnSuccessHandler?,
210224
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError> {
211-
chooseRequestProcessor().track(inAppDelivery: message,
212-
onSuccess: onSuccess,
213-
onFailure: onFailure)
225+
Pending<SendRequestValue, SendRequestError>.inBackgroundThread {
226+
self.chooseRequestProcessor().track(inAppDelivery: message,
227+
onSuccess: onSuccess,
228+
onFailure: onFailure)
229+
}
214230
}
215231

216232
@discardableResult
217233
func inAppConsume(_ messageId: String,
218234
onSuccess: OnSuccessHandler?,
219235
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError> {
220-
chooseRequestProcessor().inAppConsume(messageId,
221-
onSuccess: onSuccess,
222-
onFailure: onFailure)
236+
Pending<SendRequestValue, SendRequestError>.inBackgroundThread {
237+
self.chooseRequestProcessor().inAppConsume(messageId,
238+
onSuccess: onSuccess,
239+
onFailure: onFailure)
240+
}
223241
}
224242

225243
@discardableResult
@@ -229,12 +247,14 @@ class RequestHandler: RequestHandlerProtocol {
229247
inboxSessionId: String?,
230248
onSuccess: OnSuccessHandler?,
231249
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError> {
232-
chooseRequestProcessor().inAppConsume(message: message,
233-
location: location,
234-
source: source,
235-
inboxSessionId: inboxSessionId,
236-
onSuccess: onSuccess,
237-
onFailure: onFailure)
250+
Pending<SendRequestValue, SendRequestError>.inBackgroundThread {
251+
self.chooseRequestProcessor().inAppConsume(message: message,
252+
location: location,
253+
source: source,
254+
inboxSessionId: inboxSessionId,
255+
onSuccess: onSuccess,
256+
onFailure: onFailure)
257+
}
238258
}
239259

240260
func getRemoteConfiguration() -> Pending<RemoteConfiguration, SendRequestError> {

0 commit comments

Comments
 (0)