-
Notifications
You must be signed in to change notification settings - Fork 84
Expand file tree
/
Copy pathRequestProcessorProtocol.swift
More file actions
162 lines (138 loc) · 6.74 KB
/
Copy pathRequestProcessorProtocol.swift
File metadata and controls
162 lines (138 loc) · 6.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
//
// Copyright © 2020 Iterable. All rights reserved.
//
import Foundation
struct RegisterTokenInfo {
let hexToken: String
let appName: String
let pushServicePlatform: PushServicePlatform
let apnsType: APNSType
let deviceId: String
let deviceAttributes: [String: String]
let sdkVersion: String?
let mobileFrameworkInfo: IterableAPIMobileFrameworkInfo
var auth: Auth? = nil
}
struct UpdateSubscriptionsInfo {
let emailListIds: [NSNumber]?
let unsubscribedChannelIds: [NSNumber]?
let unsubscribedMessageTypeIds: [NSNumber]?
let subscribedMessageTypeIds: [NSNumber]?
let campaignId: NSNumber?
let templateId: NSNumber?
}
enum RequestIdentifier {
static let disableDevice = "disableDevice"
static let registerToken = "registerToken"
}
/// `RequestHandler` will delegate network related calls to this protocol.
protocol RequestProcessorProtocol {
@discardableResult
func register(registerTokenInfo: RegisterTokenInfo,
notificationsEnabled: Bool,
onSuccess: OnSuccessHandler?,
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError>
@discardableResult
func disableDeviceForCurrentUser(hexToken: String,
identitySnapshot: UserIdentitySnapshot?,
withOnSuccess onSuccess: OnSuccessHandler?,
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError>
@discardableResult
func disableDeviceForAllUsers(hexToken: String,
withOnSuccess onSuccess: OnSuccessHandler?,
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError>
@discardableResult
func updateCart(items: [CommerceItem],
onSuccess: OnSuccessHandler?,
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError>
@discardableResult
func updateCart(items: [CommerceItem],
createdAt: Int,
onSuccess: OnSuccessHandler?,
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError>
@discardableResult
func trackPurchase(_ total: NSNumber,
items: [CommerceItem],
dataFields: [AnyHashable: Any]?,
campaignId: NSNumber?,
templateId: NSNumber?,
onSuccess: OnSuccessHandler?,
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError>
@discardableResult
func trackPurchase(_ total: NSNumber,
items: [CommerceItem],
dataFields: [AnyHashable: Any]?,
createdAt: Int,
onSuccess: OnSuccessHandler?,
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError>
@discardableResult
func trackPushOpen(_ campaignId: NSNumber,
templateId: NSNumber?,
messageId: String,
appAlreadyRunning: Bool,
dataFields: [AnyHashable: Any]?,
onSuccess: OnSuccessHandler?,
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError>
@discardableResult
func track(event: String,
dataFields: [AnyHashable: Any]?,
onSuccess: OnSuccessHandler?,
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError>
@discardableResult
func track(event: String,
withBody body: [AnyHashable: Any]?,
onSuccess: OnSuccessHandler?,
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError>
@discardableResult
func trackInAppOpen(_ message: IterableInAppMessage,
location: InAppLocation,
inboxSessionId: String?,
onSuccess: OnSuccessHandler?,
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError>
@discardableResult
func trackInAppClick(_ message: IterableInAppMessage,
location: InAppLocation,
inboxSessionId: String?,
clickedUrl: String,
onSuccess: OnSuccessHandler?,
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError>
@discardableResult
func trackInAppClose(_ message: IterableInAppMessage,
location: InAppLocation,
inboxSessionId: String?,
source: InAppCloseSource?,
clickedUrl: String?,
onSuccess: OnSuccessHandler?,
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError>
@discardableResult
func track(inboxSession: IterableInboxSession,
onSuccess: OnSuccessHandler?,
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError>
@discardableResult
func track(inAppDelivery message: IterableInAppMessage,
onSuccess: OnSuccessHandler?,
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError>
@discardableResult
func inAppConsume(_ messageId: String,
onSuccess: OnSuccessHandler?,
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError>
@discardableResult
func inAppConsume(message: IterableInAppMessage,
location: InAppLocation,
source: InAppDeleteSource?,
inboxSessionId: String?,
onSuccess: OnSuccessHandler?,
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError>
@discardableResult
func track(embeddedMessageReceived message: IterableEmbeddedMessage,
onSuccess: OnSuccessHandler?,
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError>
@discardableResult
func track(embeddedMessageClick message: IterableEmbeddedMessage, buttonIdentifier: String?, clickedUrl: String,
onSuccess: OnSuccessHandler?,
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError>
@discardableResult
func track(embeddedSession: IterableEmbeddedSession,
onSuccess: OnSuccessHandler?,
onFailure: OnFailureHandler?) -> Pending<SendRequestValue, SendRequestError>
}