@@ -31,6 +31,7 @@ class ApiClient {
31
31
guard let authProvider = authProvider else {
32
32
return nil
33
33
}
34
+
34
35
let currentDate = dateProvider. currentDate
35
36
let apiCallRequest = IterableAPICallRequest ( apiKey: apiKey,
36
37
endPoint: endPoint,
@@ -48,7 +49,7 @@ class ApiClient {
48
49
return SendRequestError . createErroredFuture ( reason: iterableError. localizedDescription)
49
50
}
50
51
}
51
-
52
+
52
53
func send< T> ( iterableRequestResult result: Result < IterableRequest , IterableError > ) -> Future < T , SendRequestError > where T: Decodable {
53
54
switch result {
54
55
case let . success( iterableRequest) :
@@ -57,7 +58,7 @@ class ApiClient {
57
58
return SendRequestError . createErroredFuture ( reason: iterableError. localizedDescription)
58
59
}
59
60
}
60
-
61
+
61
62
func send( iterableRequest: IterableRequest ) -> Future < SendRequestValue , SendRequestError > {
62
63
guard let urlRequest = convertToURLRequest ( iterableRequest: iterableRequest) else {
63
64
return SendRequestError . createErroredFuture ( )
@@ -70,7 +71,7 @@ class ApiClient {
70
71
guard let urlRequest = convertToURLRequest ( iterableRequest: iterableRequest) else {
71
72
return SendRequestError . createErroredFuture ( )
72
73
}
73
-
74
+
74
75
return RequestSender . sendRequest ( urlRequest, usingSession: networkSession)
75
76
}
76
77
@@ -97,13 +98,13 @@ class ApiClient {
97
98
extension ApiClient : ApiClientProtocol {
98
99
func register( registerTokenInfo: RegisterTokenInfo , notificationsEnabled: Bool ) -> Future < SendRequestValue , SendRequestError > {
99
100
let result = createRequestCreator ( ) . flatMap { $0. createRegisterTokenRequest ( registerTokenInfo: registerTokenInfo,
100
- notificationsEnabled: notificationsEnabled) }
101
+ notificationsEnabled: notificationsEnabled) }
101
102
return send ( iterableRequestResult: result)
102
103
}
103
104
104
105
func updateUser( _ dataFields: [ AnyHashable : Any ] , mergeNestedObjects: Bool ) -> Future < SendRequestValue , SendRequestError > {
105
106
let result = createRequestCreator ( ) . flatMap { $0. createUpdateUserRequest ( dataFields: dataFields,
106
- mergeNestedObjects: mergeNestedObjects) }
107
+ mergeNestedObjects: mergeNestedObjects) }
107
108
return send ( iterableRequestResult: result)
108
109
}
109
110
@@ -119,28 +120,36 @@ extension ApiClient: ApiClientProtocol {
119
120
120
121
func disableDevice( forAllUsers allUsers: Bool , hexToken: String ) -> Future < SendRequestValue , SendRequestError > {
121
122
let result = createRequestCreator ( ) . flatMap { $0. createDisableDeviceRequest ( forAllUsers: allUsers,
122
- hexToken: hexToken) }
123
+ hexToken: hexToken) }
124
+ return send ( iterableRequestResult: result)
125
+ }
126
+
127
+ func updateCart( items: [ CommerceItem ] , dataFields: [ AnyHashable : Any ] ? ) -> Future < SendRequestValue , SendRequestError > {
128
+ let result = createRequestCreator ( ) . flatMap { $0. createUpdateCartRequest ( items: items,
129
+ dataFields: dataFields) }
130
+
123
131
return send ( iterableRequestResult: result)
124
132
}
125
133
126
134
func track( purchase total: NSNumber , items: [ CommerceItem ] , dataFields: [ AnyHashable : Any ] ? ) -> Future < SendRequestValue , SendRequestError > {
127
- let result = createRequestCreator ( ) . flatMap { $0. createTrackPurchaseRequest ( total, items: items,
128
- dataFields: dataFields) }
135
+ let result = createRequestCreator ( ) . flatMap { $0. createTrackPurchaseRequest ( total,
136
+ items: items,
137
+ dataFields: dataFields) }
129
138
return send ( iterableRequestResult: result)
130
139
}
131
140
132
141
func track( pushOpen campaignId: NSNumber , templateId: NSNumber ? , messageId: String , appAlreadyRunning: Bool , dataFields: [ AnyHashable : Any ] ? ) -> Future < SendRequestValue , SendRequestError > {
133
142
let result = createRequestCreator ( ) . flatMap { $0. createTrackPushOpenRequest ( campaignId,
134
- templateId: templateId,
135
- messageId: messageId,
136
- appAlreadyRunning: appAlreadyRunning,
137
- dataFields: dataFields) }
143
+ templateId: templateId,
144
+ messageId: messageId,
145
+ appAlreadyRunning: appAlreadyRunning,
146
+ dataFields: dataFields) }
138
147
return send ( iterableRequestResult: result)
139
148
}
140
149
141
150
func track( event eventName: String , dataFields: [ AnyHashable : Any ] ? ) -> Future < SendRequestValue , SendRequestError > {
142
151
let result = createRequestCreator ( ) . flatMap { $0. createTrackEventRequest ( eventName,
143
- dataFields: dataFields) }
152
+ dataFields: dataFields) }
144
153
return send ( iterableRequestResult: result)
145
154
}
146
155
@@ -151,11 +160,11 @@ extension ApiClient: ApiClientProtocol {
151
160
campaignId: NSNumber ? = nil ,
152
161
templateId: NSNumber ? = nil ) -> Future < SendRequestValue , SendRequestError > {
153
162
let result = createRequestCreator ( ) . flatMap { $0. createUpdateSubscriptionsRequest ( emailListIds,
154
- unsubscribedChannelIds: unsubscribedChannelIds,
155
- unsubscribedMessageTypeIds: unsubscribedMessageTypeIds,
156
- subscribedMessageTypeIds: subscribedMessageTypeIds,
157
- campaignId: campaignId,
158
- templateId: templateId) }
163
+ unsubscribedChannelIds: unsubscribedChannelIds,
164
+ unsubscribedMessageTypeIds: unsubscribedMessageTypeIds,
165
+ subscribedMessageTypeIds: subscribedMessageTypeIds,
166
+ campaignId: campaignId,
167
+ templateId: templateId) }
159
168
return send ( iterableRequestResult: result)
160
169
}
161
170
@@ -166,14 +175,14 @@ extension ApiClient: ApiClientProtocol {
166
175
167
176
func track( inAppClick inAppMessageContext: InAppMessageContext , clickedUrl: String ) -> Future < SendRequestValue , SendRequestError > {
168
177
let result = createRequestCreator ( ) . flatMap { $0. createTrackInAppClickRequest ( inAppMessageContext: inAppMessageContext,
169
- clickedUrl: clickedUrl) }
178
+ clickedUrl: clickedUrl) }
170
179
return send ( iterableRequestResult: result)
171
180
}
172
181
173
182
func track( inAppClose inAppMessageContext: InAppMessageContext , source: InAppCloseSource ? , clickedUrl: String ? ) -> Future < SendRequestValue , SendRequestError > {
174
183
let result = createRequestCreator ( ) . flatMap { $0. createTrackInAppCloseRequest ( inAppMessageContext: inAppMessageContext,
175
- source: source,
176
- clickedUrl: clickedUrl) }
184
+ source: source,
185
+ clickedUrl: clickedUrl) }
177
186
return send ( iterableRequestResult: result)
178
187
}
179
188
@@ -194,7 +203,7 @@ extension ApiClient: ApiClientProtocol {
194
203
195
204
func inAppConsume( inAppMessageContext: InAppMessageContext , source: InAppDeleteSource ? ) -> Future < SendRequestValue , SendRequestError > {
196
205
let result = createRequestCreator ( ) . flatMap { $0. createTrackInAppConsumeRequest ( inAppMessageContext: inAppMessageContext,
197
- source: source) }
206
+ source: source) }
198
207
return send ( iterableRequestResult: result)
199
208
}
200
209
0 commit comments