outbound 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/outbound.rb +72 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c71e5b2056a5a319a0dfc927aa93afdd35f9ea85
|
4
|
+
data.tar.gz: 59fe333eb515f8649661f479c829f0592ee3d4ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7aa2993b6c0b23d5d1533b1a285e6fdad5affb5394e377b3a642f640c99d45df488b673c3327f747b3bfe74089813bc2c939b38539e94651bdc718b41526b07f
|
7
|
+
data.tar.gz: 1229904ebc79bd02eff8c48bef23696f62208e70a1abe301c76567064144b19d87be2a81f5ad578247ce6dc28570f08df3966545a906b64ddd1216246859cede
|
data/lib/outbound.rb
CHANGED
@@ -4,7 +4,7 @@ require 'net/http'
|
|
4
4
|
require 'uri'
|
5
5
|
|
6
6
|
module Outbound
|
7
|
-
VERSION = '1.0
|
7
|
+
VERSION = '1.1.0'
|
8
8
|
BASE_URL = 'https://api.outbound.io/v2'
|
9
9
|
|
10
10
|
APNS = "apns"
|
@@ -16,6 +16,7 @@ module Outbound
|
|
16
16
|
ERROR_INIT = "Must call init() before identify() or track()."
|
17
17
|
ERROR_TOKEN = "Token must be a string."
|
18
18
|
ERROR_PLATFORM = "Unsupported platform specified."
|
19
|
+
ERROR_CAMPAIGN_IDS = "At least one campaign ID is required."
|
19
20
|
|
20
21
|
@ob = nil
|
21
22
|
@logger = Logger.new $stdout
|
@@ -61,6 +62,15 @@ module Outbound
|
|
61
62
|
return @ob.disable(platform, user_id, token)
|
62
63
|
end
|
63
64
|
|
65
|
+
def Outbound.disable_all(platform, user_id)
|
66
|
+
if @ob == nil
|
67
|
+
res = Result.new Outbound::ERROR_INIT, false
|
68
|
+
@logger.error res.error
|
69
|
+
return res
|
70
|
+
end
|
71
|
+
return @ob.disable_all(platform, user_id)
|
72
|
+
end
|
73
|
+
|
64
74
|
def Outbound.register(platform, user_id, token)
|
65
75
|
if @ob == nil
|
66
76
|
res = Result.new Outbound::ERROR_INIT, false
|
@@ -70,6 +80,24 @@ module Outbound
|
|
70
80
|
return @ob.register(platform, user_id, token)
|
71
81
|
end
|
72
82
|
|
83
|
+
def Outbound.unsubscribe user_id, all=false, campaign_ids=nil
|
84
|
+
if @ob == nil
|
85
|
+
res = Result.new Outbound::ERROR_INIT, false
|
86
|
+
@logger.error res.error
|
87
|
+
return res
|
88
|
+
end
|
89
|
+
return @ob.subscription user_id, true, all, campaign_ids
|
90
|
+
end
|
91
|
+
|
92
|
+
def Outbound.subscribe user_id, all=false, campaign_ids=nil
|
93
|
+
if @ob == nil
|
94
|
+
res = Result.new Outbound::ERROR_INIT, false
|
95
|
+
@logger.error res.error
|
96
|
+
return res
|
97
|
+
end
|
98
|
+
return @ob.subscription user_id, false, all, campaign_ids
|
99
|
+
end
|
100
|
+
|
73
101
|
class Result
|
74
102
|
include Defaults
|
75
103
|
|
@@ -108,6 +136,10 @@ module Outbound
|
|
108
136
|
def platform_error?
|
109
137
|
return @error == Outbound::ERROR_PLATFORM
|
110
138
|
end
|
139
|
+
|
140
|
+
def campaign_id_error?
|
141
|
+
return @error == Outbound::ERROR_CAMPAIGN_IDS
|
142
|
+
end
|
111
143
|
end
|
112
144
|
|
113
145
|
class Client
|
@@ -187,6 +219,22 @@ module Outbound
|
|
187
219
|
return post(@api_key, "/#{platform}/disable", {:token => token, :user_id => user_id})
|
188
220
|
end
|
189
221
|
|
222
|
+
def disable_all(platform, user_id)
|
223
|
+
unless user_id.is_a? String or user_id.is_a? Numeric
|
224
|
+
res = Result.new Outbound::ERROR_USER_ID, false
|
225
|
+
@logger.error res.error
|
226
|
+
return res
|
227
|
+
end
|
228
|
+
|
229
|
+
unless [Outbound::APNS, Outbound::GCM].include? platform
|
230
|
+
res = Result.new Outbound::ERROR_PLATFORM, false
|
231
|
+
@logger.error res.error
|
232
|
+
return res
|
233
|
+
end
|
234
|
+
|
235
|
+
return post(@api_key, "/#{platform}/disable", {:all => true, :user_id => user_id})
|
236
|
+
end
|
237
|
+
|
190
238
|
def register(platform, user_id, token)
|
191
239
|
unless user_id.is_a? String or user_id.is_a? Numeric
|
192
240
|
res = Result.new Outbound::ERROR_USER_ID, false
|
@@ -209,6 +257,29 @@ module Outbound
|
|
209
257
|
return post(@api_key, "/#{platform}/register", {:token => token, :user_id => user_id})
|
210
258
|
end
|
211
259
|
|
260
|
+
def subscription user_id, unsubscribe=false, all=false, campaign_ids=nil
|
261
|
+
unless user_id.is_a? String or user_id.is_a? Numeric
|
262
|
+
res = Result.new Outbound::ERROR_USER_ID, false
|
263
|
+
@logger.error res.error
|
264
|
+
return res
|
265
|
+
end
|
266
|
+
|
267
|
+
if !all
|
268
|
+
unless !campaign_ids.nil? && campaign_ids.is_a?(Array) && campaign_ids.length > 0
|
269
|
+
res = Result.new Outbound::ERROR_CAMPAIGN_IDS, false
|
270
|
+
@logger.error res.error
|
271
|
+
return res
|
272
|
+
end
|
273
|
+
end
|
274
|
+
|
275
|
+
url = '/' + (unsubscribe ? 'unsubscribe' : 'subscribe') + '/' + (all ? 'all' : 'campaigns')
|
276
|
+
data = {:user_id => user_id}
|
277
|
+
if !all
|
278
|
+
data[:campaign_ids] = campaign_ids
|
279
|
+
end
|
280
|
+
return post(@api_key, url, data)
|
281
|
+
end
|
282
|
+
|
212
283
|
private
|
213
284
|
|
214
285
|
def post(api_key, path, data)
|