@@ -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,35 @@ 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 ] ) -> Future < SendRequestValue , SendRequestError > {
128
+ let result = createRequestCreator ( ) . flatMap { $0. createUpdateCartRequest ( items: items) }
129
+
123
130
return send ( iterableRequestResult: result)
124
131
}
125
132
126
133
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) }
134
+ let result = createRequestCreator ( ) . flatMap { $0. createTrackPurchaseRequest ( total,
135
+ items: items,
136
+ dataFields: dataFields) }
129
137
return send ( iterableRequestResult: result)
130
138
}
131
139
132
140
func track( pushOpen campaignId: NSNumber , templateId: NSNumber ? , messageId: String , appAlreadyRunning: Bool , dataFields: [ AnyHashable : Any ] ? ) -> Future < SendRequestValue , SendRequestError > {
133
141
let result = createRequestCreator ( ) . flatMap { $0. createTrackPushOpenRequest ( campaignId,
134
- templateId: templateId,
135
- messageId: messageId,
136
- appAlreadyRunning: appAlreadyRunning,
137
- dataFields: dataFields) }
142
+ templateId: templateId,
143
+ messageId: messageId,
144
+ appAlreadyRunning: appAlreadyRunning,
145
+ dataFields: dataFields) }
138
146
return send ( iterableRequestResult: result)
139
147
}
140
148
141
149
func track( event eventName: String , dataFields: [ AnyHashable : Any ] ? ) -> Future < SendRequestValue , SendRequestError > {
142
150
let result = createRequestCreator ( ) . flatMap { $0. createTrackEventRequest ( eventName,
143
- dataFields: dataFields) }
151
+ dataFields: dataFields) }
144
152
return send ( iterableRequestResult: result)
145
153
}
146
154
@@ -151,11 +159,11 @@ extension ApiClient: ApiClientProtocol {
151
159
campaignId: NSNumber ? = nil ,
152
160
templateId: NSNumber ? = nil ) -> Future < SendRequestValue , SendRequestError > {
153
161
let result = createRequestCreator ( ) . flatMap { $0. createUpdateSubscriptionsRequest ( emailListIds,
154
- unsubscribedChannelIds: unsubscribedChannelIds,
155
- unsubscribedMessageTypeIds: unsubscribedMessageTypeIds,
156
- subscribedMessageTypeIds: subscribedMessageTypeIds,
157
- campaignId: campaignId,
158
- templateId: templateId) }
162
+ unsubscribedChannelIds: unsubscribedChannelIds,
163
+ unsubscribedMessageTypeIds: unsubscribedMessageTypeIds,
164
+ subscribedMessageTypeIds: subscribedMessageTypeIds,
165
+ campaignId: campaignId,
166
+ templateId: templateId) }
159
167
return send ( iterableRequestResult: result)
160
168
}
161
169
@@ -166,14 +174,14 @@ extension ApiClient: ApiClientProtocol {
166
174
167
175
func track( inAppClick inAppMessageContext: InAppMessageContext , clickedUrl: String ) -> Future < SendRequestValue , SendRequestError > {
168
176
let result = createRequestCreator ( ) . flatMap { $0. createTrackInAppClickRequest ( inAppMessageContext: inAppMessageContext,
169
- clickedUrl: clickedUrl) }
177
+ clickedUrl: clickedUrl) }
170
178
return send ( iterableRequestResult: result)
171
179
}
172
180
173
181
func track( inAppClose inAppMessageContext: InAppMessageContext , source: InAppCloseSource ? , clickedUrl: String ? ) -> Future < SendRequestValue , SendRequestError > {
174
182
let result = createRequestCreator ( ) . flatMap { $0. createTrackInAppCloseRequest ( inAppMessageContext: inAppMessageContext,
175
- source: source,
176
- clickedUrl: clickedUrl) }
183
+ source: source,
184
+ clickedUrl: clickedUrl) }
177
185
return send ( iterableRequestResult: result)
178
186
}
179
187
@@ -194,7 +202,7 @@ extension ApiClient: ApiClientProtocol {
194
202
195
203
func inAppConsume( inAppMessageContext: InAppMessageContext , source: InAppDeleteSource ? ) -> Future < SendRequestValue , SendRequestError > {
196
204
let result = createRequestCreator ( ) . flatMap { $0. createTrackInAppConsumeRequest ( inAppMessageContext: inAppMessageContext,
197
- source: source) }
205
+ source: source) }
198
206
return send ( iterableRequestResult: result)
199
207
}
200
208
0 commit comments