Skip to content

Commit 4aeecc6

Browse files
Replace all calls with Jwt failure retry
1 parent 0dab942 commit 4aeecc6

File tree

1 file changed

+86
-93
lines changed

1 file changed

+86
-93
lines changed

swift-sdk/Internal/OnlineRequestProcessor.swift

Lines changed: 86 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -38,45 +38,51 @@ struct OnlineRequestProcessor: RequestProcessorProtocol {
3838
func disableDeviceForCurrentUser(hexToken: String,
3939
withOnSuccess onSuccess: OnSuccessHandler? = nil,
4040
onFailure: OnFailureHandler? = nil) -> Pending<SendRequestValue, SendRequestError> {
41-
disableDevice(forAllUsers: false, hexToken: hexToken, onSuccess: onSuccess, onFailure: onFailure)
41+
disableDevice(forAllUsers: false,
42+
hexToken: hexToken,
43+
onSuccess: onSuccess,
44+
onFailure: onFailure)
4245
}
4346

4447
@discardableResult
4548
func disableDeviceForAllUsers(hexToken: String,
4649
withOnSuccess onSuccess: OnSuccessHandler? = nil,
4750
onFailure: OnFailureHandler? = nil) -> Pending<SendRequestValue, SendRequestError> {
48-
disableDevice(forAllUsers: true, hexToken: hexToken, onSuccess: onSuccess, onFailure: onFailure)
51+
disableDevice(forAllUsers: true,
52+
hexToken: hexToken,
53+
onSuccess: onSuccess,
54+
onFailure: onFailure)
4955
}
5056

5157
@discardableResult
5258
func updateUser(_ dataFields: [AnyHashable: Any],
5359
mergeNestedObjects: Bool,
5460
onSuccess: OnSuccessHandler? = nil,
5561
onFailure: OnFailureHandler? = nil) -> Pending<SendRequestValue, SendRequestError> {
56-
applyCallbacks(successHandler: onSuccess,
57-
andFailureHandler: onFailure,
58-
withIdentifier: "updateUser",
59-
forResult: apiClient.updateUser(dataFields, mergeNestedObjects: mergeNestedObjects))
62+
sendRequest(requestProvider: { apiClient.updateUser(dataFields, mergeNestedObjects: mergeNestedObjects) },
63+
successHandler: onSuccess,
64+
failureHandler: onFailure,
65+
requestIdentifier: "updateUser")
6066
}
6167

6268
@discardableResult
6369
func updateEmail(_ newEmail: String,
6470
onSuccess: OnSuccessHandler? = nil,
6571
onFailure: OnFailureHandler? = nil) -> Pending<SendRequestValue, SendRequestError> {
66-
applyCallbacks(successHandler: onSuccess,
67-
andFailureHandler: onFailure,
68-
withIdentifier: "updateEmail",
69-
forResult: apiClient.updateEmail(newEmail: newEmail))
72+
sendRequest(requestProvider: { apiClient.updateEmail(newEmail: newEmail) },
73+
successHandler: onSuccess,
74+
failureHandler: onFailure,
75+
requestIdentifier: "updateEmail")
7076
}
7177

7278
@discardableResult
7379
func updateCart(items: [CommerceItem],
7480
onSuccess: OnSuccessHandler? = nil,
7581
onFailure: OnFailureHandler? = nil) -> Pending<SendRequestValue, SendRequestError> {
76-
applyCallbacks(successHandler: onSuccess,
77-
andFailureHandler: onFailure,
78-
withIdentifier: "updateCart",
79-
forResult: apiClient.updateCart(items: items))
82+
sendRequest(requestProvider: { apiClient.updateCart(items: items) },
83+
successHandler: onSuccess,
84+
failureHandler: onFailure,
85+
requestIdentifier: "updateCart")
8086
}
8187

8288
@discardableResult
@@ -87,10 +93,14 @@ struct OnlineRequestProcessor: RequestProcessorProtocol {
8793
templateId: NSNumber?,
8894
onSuccess: OnSuccessHandler? = nil,
8995
onFailure: OnFailureHandler? = nil) -> Pending<SendRequestValue, SendRequestError> {
90-
applyCallbacks(successHandler: onSuccess,
91-
andFailureHandler: onFailure,
92-
withIdentifier: "trackPurchase",
93-
forResult: apiClient.track(purchase: total, items: items, dataFields: dataFields, campaignId: campaignId, templateId: templateId))
96+
sendRequest(requestProvider: { apiClient.track(purchase: total,
97+
items: items,
98+
dataFields: dataFields,
99+
campaignId: campaignId,
100+
templateId: templateId) },
101+
successHandler: onSuccess,
102+
failureHandler: onFailure,
103+
requestIdentifier: "trackPurchase")
94104
}
95105

96106
@discardableResult
@@ -101,14 +111,14 @@ struct OnlineRequestProcessor: RequestProcessorProtocol {
101111
dataFields: [AnyHashable: Any]? = nil,
102112
onSuccess: OnSuccessHandler? = nil,
103113
onFailure: OnFailureHandler? = nil) -> Pending<SendRequestValue, SendRequestError> {
104-
applyCallbacks(successHandler: onSuccess,
105-
andFailureHandler: onFailure,
106-
withIdentifier: "trackPushOpen",
107-
forResult: apiClient.track(pushOpen: campaignId,
108-
templateId: templateId,
109-
messageId: messageId,
110-
appAlreadyRunning: appAlreadyRunning,
111-
dataFields: dataFields))
114+
sendRequest(requestProvider: { apiClient.track(pushOpen: campaignId,
115+
templateId: templateId,
116+
messageId: messageId,
117+
appAlreadyRunning: appAlreadyRunning,
118+
dataFields: dataFields) },
119+
successHandler: onSuccess,
120+
failureHandler: onFailure,
121+
requestIdentifier: "trackPushOpen")
112122
}
113123

114124
@discardableResult
@@ -126,15 +136,15 @@ struct OnlineRequestProcessor: RequestProcessorProtocol {
126136
func updateSubscriptions(info: UpdateSubscriptionsInfo,
127137
onSuccess: OnSuccessHandler? = nil,
128138
onFailure: OnFailureHandler? = nil) -> Pending<SendRequestValue, SendRequestError> {
129-
applyCallbacks(successHandler: onSuccess,
130-
andFailureHandler: onFailure,
131-
withIdentifier: "updateSubscriptions",
132-
forResult: apiClient.updateSubscriptions(info.emailListIds,
133-
unsubscribedChannelIds: info.unsubscribedChannelIds,
134-
unsubscribedMessageTypeIds: info.unsubscribedMessageTypeIds,
135-
subscribedMessageTypeIds: info.subscribedMessageTypeIds,
136-
campaignId: info.campaignId,
137-
templateId: info.templateId))
139+
sendRequest(requestProvider: { apiClient.updateSubscriptions(info.emailListIds,
140+
unsubscribedChannelIds: info.unsubscribedChannelIds,
141+
unsubscribedMessageTypeIds: info.unsubscribedMessageTypeIds,
142+
subscribedMessageTypeIds: info.subscribedMessageTypeIds,
143+
campaignId: info.campaignId,
144+
templateId: info.templateId) },
145+
successHandler: onSuccess,
146+
failureHandler: onFailure,
147+
requestIdentifier: "updateSubscriptions")
138148
}
139149

140150
@discardableResult
@@ -143,11 +153,10 @@ struct OnlineRequestProcessor: RequestProcessorProtocol {
143153
inboxSessionId: String? = nil,
144154
onSuccess: OnSuccessHandler? = nil,
145155
onFailure: OnFailureHandler? = nil) -> Pending<SendRequestValue, SendRequestError> {
146-
let result = apiClient.track(inAppOpen: InAppMessageContext.from(message: message, location: location, inboxSessionId: inboxSessionId))
147-
return applyCallbacks(successHandler: onSuccess,
148-
andFailureHandler: onFailure,
149-
withIdentifier: "trackInAppOpen",
150-
forResult: result)
156+
sendRequest(requestProvider: { apiClient.track(inAppOpen: InAppMessageContext.from(message: message, location: location, inboxSessionId: inboxSessionId)) },
157+
successHandler: onSuccess,
158+
failureHandler: onFailure,
159+
requestIdentifier: "trackInAppOpen")
151160
}
152161

153162
@discardableResult
@@ -157,12 +166,11 @@ struct OnlineRequestProcessor: RequestProcessorProtocol {
157166
clickedUrl: String,
158167
onSuccess: OnSuccessHandler? = nil,
159168
onFailure: OnFailureHandler? = nil) -> Pending<SendRequestValue, SendRequestError> {
160-
let result = apiClient.track(inAppClick: InAppMessageContext.from(message: message, location: location, inboxSessionId: inboxSessionId),
161-
clickedUrl: clickedUrl)
162-
return applyCallbacks(successHandler: onSuccess,
163-
andFailureHandler: onFailure,
164-
withIdentifier: "trackInAppClick",
165-
forResult: result)
169+
sendRequest(requestProvider: { apiClient.track(inAppClick: InAppMessageContext.from(message: message, location: location, inboxSessionId: inboxSessionId),
170+
clickedUrl: clickedUrl) },
171+
successHandler: onSuccess,
172+
failureHandler: onFailure,
173+
requestIdentifier: "trackInAppClick")
166174
}
167175

168176
@discardableResult
@@ -173,45 +181,42 @@ struct OnlineRequestProcessor: RequestProcessorProtocol {
173181
clickedUrl: String? = nil,
174182
onSuccess: OnSuccessHandler? = nil,
175183
onFailure: OnFailureHandler? = nil) -> Pending<SendRequestValue, SendRequestError> {
176-
let result = apiClient.track(inAppClose: InAppMessageContext.from(message: message, location: location, inboxSessionId: inboxSessionId),
177-
source: source,
178-
clickedUrl: clickedUrl)
179-
return applyCallbacks(successHandler: onSuccess,
180-
andFailureHandler: onFailure,
181-
withIdentifier: "trackInAppClose",
182-
forResult: result)
184+
sendRequest(requestProvider: { apiClient.track(inAppClose: InAppMessageContext.from(message: message, location: location, inboxSessionId: inboxSessionId),
185+
source: source,
186+
clickedUrl: clickedUrl) },
187+
successHandler: onSuccess,
188+
failureHandler: onFailure,
189+
requestIdentifier: "trackInAppClose")
183190
}
184191

185192
@discardableResult
186193
func track(inboxSession: IterableInboxSession,
187194
onSuccess: OnSuccessHandler? = nil,
188195
onFailure: OnFailureHandler? = nil) -> Pending<SendRequestValue, SendRequestError> {
189-
let result = apiClient.track(inboxSession: inboxSession)
190-
191-
return applyCallbacks(successHandler: onSuccess,
192-
andFailureHandler: onFailure,
193-
withIdentifier: "trackInboxSession",
194-
forResult: result)
196+
sendRequest(requestProvider: { apiClient.track(inboxSession: inboxSession) },
197+
successHandler: onSuccess,
198+
failureHandler: onFailure,
199+
requestIdentifier: "trackInboxSession")
195200
}
196201

197202
@discardableResult
198203
func track(inAppDelivery message: IterableInAppMessage,
199204
onSuccess: OnSuccessHandler? = nil,
200205
onFailure: OnFailureHandler? = nil) -> Pending<SendRequestValue, SendRequestError> {
201-
applyCallbacks(successHandler: onSuccess,
202-
andFailureHandler: onFailure,
203-
withIdentifier: "trackInAppDelivery",
204-
forResult: apiClient.track(inAppDelivery: InAppMessageContext.from(message: message, location: nil)))
206+
sendRequest(requestProvider: { apiClient.track(inAppDelivery: InAppMessageContext.from(message: message, location: nil)) },
207+
successHandler: onSuccess,
208+
failureHandler: onFailure,
209+
requestIdentifier: "trackInAppDelivery")
205210
}
206211

207212
@discardableResult
208213
func inAppConsume(_ messageId: String,
209214
onSuccess: OnSuccessHandler? = nil,
210215
onFailure: OnFailureHandler? = nil) -> Pending<SendRequestValue, SendRequestError> {
211-
applyCallbacks(successHandler: onSuccess,
212-
andFailureHandler: onFailure,
213-
withIdentifier: "inAppConsume",
214-
forResult: apiClient.inAppConsume(messageId: messageId))
216+
sendRequest(requestProvider: { apiClient.inAppConsume(messageId: messageId) },
217+
successHandler: onSuccess,
218+
failureHandler: onFailure,
219+
requestIdentifier: "inAppConsume")
215220
}
216221

217222
@discardableResult
@@ -221,12 +226,11 @@ struct OnlineRequestProcessor: RequestProcessorProtocol {
221226
inboxSessionId: String? = nil,
222227
onSuccess: OnSuccessHandler? = nil,
223228
onFailure: OnFailureHandler? = nil) -> Pending<SendRequestValue, SendRequestError> {
224-
let result = apiClient.inAppConsume(inAppMessageContext: InAppMessageContext.from(message: message, location: location, inboxSessionId: inboxSessionId),
225-
source: source)
226-
return applyCallbacks(successHandler: onSuccess,
227-
andFailureHandler: onFailure,
228-
withIdentifier: "inAppConsumeWithSource",
229-
forResult: result)
229+
sendRequest(requestProvider: { apiClient.inAppConsume(inAppMessageContext: InAppMessageContext.from(message: message, location: location, inboxSessionId: inboxSessionId),
230+
source: source) },
231+
successHandler: onSuccess,
232+
failureHandler: onFailure,
233+
requestIdentifier: "inAppConsumeWithSource")
230234
}
231235

232236
func getRemoteConfiguration() -> Pending<RemoteConfiguration, SendRequestError> {
@@ -241,22 +245,22 @@ struct OnlineRequestProcessor: RequestProcessorProtocol {
241245
notificationsEnabled: Bool,
242246
onSuccess: OnSuccessHandler? = nil,
243247
onFailure: OnFailureHandler? = nil) -> Pending<SendRequestValue, SendRequestError> {
244-
return applyCallbacks(successHandler: onSuccess,
245-
andFailureHandler: onFailure,
246-
withIdentifier: "registerToken",
247-
forResult: apiClient.register(registerTokenInfo: registerTokenInfo,
248-
notificationsEnabled: notificationsEnabled))
248+
sendRequest(requestProvider: { apiClient.register(registerTokenInfo: registerTokenInfo,
249+
notificationsEnabled: notificationsEnabled) },
250+
successHandler: onSuccess,
251+
failureHandler: onFailure,
252+
requestIdentifier: "registerToken")
249253
}
250254

251255
@discardableResult
252256
private func disableDevice(forAllUsers allUsers: Bool,
253257
hexToken: String,
254258
onSuccess: OnSuccessHandler? = nil,
255259
onFailure: OnFailureHandler? = nil) -> Pending<SendRequestValue, SendRequestError> {
256-
applyCallbacks(successHandler: onSuccess,
257-
andFailureHandler: onFailure,
258-
withIdentifier: "disableDevice",
259-
forResult: apiClient.disableDevice(forAllUsers: allUsers, hexToken: hexToken))
260+
sendRequest(requestProvider: { apiClient.disableDevice(forAllUsers: allUsers, hexToken: hexToken) },
261+
successHandler: onSuccess,
262+
failureHandler: onFailure,
263+
requestIdentifier: "disableDevice")
260264
}
261265

262266
private func sendRequest(requestProvider: @escaping () -> Pending<SendRequestValue, SendRequestError>,
@@ -269,15 +273,4 @@ struct OnlineRequestProcessor: RequestProcessorProtocol {
269273
authManager: authManager,
270274
requestIdentifier: identifier)
271275
}
272-
273-
private func applyCallbacks(successHandler onSuccess: OnSuccessHandler? = nil,
274-
andFailureHandler onFailure: OnFailureHandler? = nil,
275-
withIdentifier identifier: String,
276-
forResult result: Pending<SendRequestValue, SendRequestError>) -> Pending<SendRequestValue, SendRequestError> {
277-
RequestProcessorUtil.apply(successHandler: onSuccess,
278-
andFailureHandler: onFailure,
279-
andAuthManager: authManager,
280-
toResult: result,
281-
withIdentifier: identifier)
282-
}
283276
}

0 commit comments

Comments
 (0)