mailchimp_api_v3 0.0.9 → 0.0.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/mailchimp_api_v3.rb +7 -0
- data/lib/mailchimp_api_v3/client.rb +8 -6
- data/lib/mailchimp_api_v3/client/remote.rb +1 -1
- data/lib/mailchimp_api_v3/collection.rb +4 -0
- data/lib/mailchimp_api_v3/collection/paging.rb +5 -2
- data/lib/mailchimp_api_v3/instance.rb +31 -10
- data/lib/mailchimp_api_v3/interest_category.rb +1 -0
- data/lib/mailchimp_api_v3/member.rb +6 -6
- data/lib/mailchimp_api_v3/version.rb +1 -1
- data/spec/fixtures/cassettes/list.yml +220 -4
- data/spec/mailchimp_api_v3/list_spec.rb +12 -0
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 19928fd642bd7ca7ed9b40629d6e1db96391a12d
|
4
|
+
data.tar.gz: 101319ee1254dcfe89b6c15137117ba7870d12b1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 42975655558150ab3cae21e4017268c588e21147aac52e85dd942f68a6735d4bf950bb6a7135297e932d6d58431efc3a084382f52e30a882e85ba0637113aa57
|
7
|
+
data.tar.gz: 6c8cd4398dae39251a0c9e10200b8984ad36fcb2294cda7cde8b9d8ac9f90b8957524821730f74f381aac851c4a3ad9701d8fcade888c2693109be2520c0f766
|
data/lib/mailchimp_api_v3.rb
CHANGED
@@ -3,14 +3,15 @@ module Mailchimp
|
|
3
3
|
include Remote
|
4
4
|
|
5
5
|
def account
|
6
|
-
Account.new self, get
|
6
|
+
Account.new self, get(path)
|
7
7
|
end
|
8
8
|
|
9
|
-
def lists(
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
9
|
+
def lists(*args)
|
10
|
+
subclass_from Lists, *args
|
11
|
+
# raw_data = filter.respond_to?(:dup) ? filter.dup : filter
|
12
|
+
# data = raw_data.is_a?(String) ? { name: raw_data } : raw_data
|
13
|
+
# lists = Lists.new(self)
|
14
|
+
# data.empty? ? lists : lists.find_by(data)
|
14
15
|
end
|
15
16
|
|
16
17
|
def connected?
|
@@ -32,6 +33,7 @@ module Mailchimp
|
|
32
33
|
) unless api_key_valid?
|
33
34
|
|
34
35
|
@extra_headers = extra_headers
|
36
|
+
super self, { 'id' => '3.0' }
|
35
37
|
end
|
36
38
|
|
37
39
|
def api_key_valid?
|
@@ -57,8 +57,11 @@ module Mailchimp
|
|
57
57
|
end
|
58
58
|
|
59
59
|
def parse_options(options = {})
|
60
|
-
|
61
|
-
|
60
|
+
if options
|
61
|
+
@offset = options['start'] if options.key? 'start'
|
62
|
+
@page_size = options['page_size'] if options.key? 'page_size'
|
63
|
+
end
|
64
|
+
|
62
65
|
invalidate_current_page
|
63
66
|
end
|
64
67
|
|
@@ -11,8 +11,8 @@ module Mailchimp
|
|
11
11
|
|
12
12
|
def initialize(client, data, collection_path = '')
|
13
13
|
@client = client
|
14
|
-
@collection_path = collection_path
|
15
14
|
@data = data
|
15
|
+
@collection_path = collection_path
|
16
16
|
#- puts @data # debug
|
17
17
|
end
|
18
18
|
|
@@ -36,15 +36,15 @@ module Mailchimp
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
-
def subclass_from(collection_class,
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
39
|
+
def subclass_from(collection_class, *args)
|
40
|
+
id, name, options = parse_args(*args)
|
41
|
+
return subclass_instance_from(collection_class, id) if id
|
42
|
+
|
43
|
+
paging_options = options.divide_on('start', 'page_size') if options
|
44
|
+
collection = collection_class.new @client, path, paging_options
|
45
|
+
|
46
|
+
return collection.find_by collection.name_field => name if name
|
47
|
+
options.nil? || options.empty? ? collection : collection.where(options)
|
48
48
|
end
|
49
49
|
|
50
50
|
private
|
@@ -62,5 +62,26 @@ module Mailchimp
|
|
62
62
|
message = options == {} ? key : "#{key}: #{options}"
|
63
63
|
fail Mailchimp::Exception::UnknownAttribute, message
|
64
64
|
end
|
65
|
+
|
66
|
+
def subclass_instance_from(collection_class, id)
|
67
|
+
child_path = "#{path}/#{collection_class::PATH_KEY}"
|
68
|
+
collection_class::CHILD_CLASS.get @client, child_path, id
|
69
|
+
end
|
70
|
+
|
71
|
+
def parse_args(*args)
|
72
|
+
first_arg = args.shift
|
73
|
+
second_arg = args.shift
|
74
|
+
|
75
|
+
if first_arg.is_a? String
|
76
|
+
id_and_name_from(first_arg) << second_arg
|
77
|
+
else
|
78
|
+
[nil, nil, first_arg]
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
# If string is a hex string assume it's an id, otherwise it's a name
|
83
|
+
def id_and_name_from(string)
|
84
|
+
string =~ /[^0-9a-f]/i ? [nil, string] : [string, nil]
|
85
|
+
end
|
65
86
|
end
|
66
87
|
end
|
@@ -26,8 +26,8 @@ module Mailchimp
|
|
26
26
|
@first_name = @last_name = @name = nil
|
27
27
|
end
|
28
28
|
|
29
|
-
def parse_name_from(
|
30
|
-
clean_data =
|
29
|
+
def parse_name_from(data)
|
30
|
+
clean_data = data.deep_stringify_keys
|
31
31
|
fname, lname = name_parts_from clean_data
|
32
32
|
|
33
33
|
merge_fields = {}
|
@@ -38,13 +38,13 @@ module Mailchimp
|
|
38
38
|
additional_data.merge clean_data
|
39
39
|
end
|
40
40
|
|
41
|
-
def name_parts_from(
|
42
|
-
new_name =
|
41
|
+
def name_parts_from(data)
|
42
|
+
new_name = data.delete('name')
|
43
43
|
name_parts = new_name ? new_name.split : []
|
44
44
|
|
45
45
|
[
|
46
|
-
|
47
|
-
|
46
|
+
data.delete('first_name') || name_parts[0],
|
47
|
+
data.delete('last_name') || name_parts[1]
|
48
48
|
]
|
49
49
|
end
|
50
50
|
end
|
@@ -12,7 +12,7 @@ http_interactions:
|
|
12
12
|
Accept-Encoding:
|
13
13
|
- gzip, deflate
|
14
14
|
Authorization:
|
15
|
-
- apikey
|
15
|
+
- apikey vcr_playback-us11
|
16
16
|
User-Agent:
|
17
17
|
- Mailchimp API v3 Ruby gem https://rubygems.org/gems/mailchimp_api_v3
|
18
18
|
response:
|
@@ -56,7 +56,7 @@ http_interactions:
|
|
56
56
|
Accept-Encoding:
|
57
57
|
- gzip, deflate
|
58
58
|
Authorization:
|
59
|
-
- apikey
|
59
|
+
- apikey vcr_playback-us11
|
60
60
|
User-Agent:
|
61
61
|
- Mailchimp API v3 Ruby gem https://rubygems.org/gems/mailchimp_api_v3
|
62
62
|
response:
|
@@ -100,7 +100,7 @@ http_interactions:
|
|
100
100
|
Accept-Encoding:
|
101
101
|
- gzip, deflate
|
102
102
|
Authorization:
|
103
|
-
- apikey
|
103
|
+
- apikey vcr_playback-us11
|
104
104
|
User-Agent:
|
105
105
|
- Mailchimp API v3 Ruby gem https://rubygems.org/gems/mailchimp_api_v3
|
106
106
|
response:
|
@@ -143,7 +143,7 @@ http_interactions:
|
|
143
143
|
Accept-Encoding:
|
144
144
|
- gzip, deflate
|
145
145
|
Authorization:
|
146
|
-
- apikey
|
146
|
+
- apikey vcr_playback-us11
|
147
147
|
User-Agent:
|
148
148
|
- Mailchimp API v3 Ruby gem https://rubygems.org/gems/mailchimp_api_v3
|
149
149
|
response:
|
@@ -173,4 +173,220 @@ http_interactions:
|
|
173
173
|
14:50:15","member_rating":2,"last_changed":"2015-07-07T11:29:25+00:00","language":"","vip":false,"email_client":"","location":{"latitude":0,"longitude":0,"gmtoff":0,"dstoff":0,"country_code":"","timezone":""},"list_id":"e73f5910ca","_links":[{"rel":"self","href":"https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/3.0/lists/e73f5910ca/members/140b91c107d2058dee730e75be0b1151","method":"GET","targetSchema":"https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/schema/3.0/Lists/Members/Instance.json"},{"rel":"parent","href":"https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/3.0/lists/e73f5910ca/members","method":"GET","targetSchema":"https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/schema/3.0/Lists/Members/Collection.json"},{"rel":"update","href":"https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/3.0/lists/e73f5910ca/members/140b91c107d2058dee730e75be0b1151","method":"PATCH","schema":"https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/schema/3.0/Lists/Members/Instance.json"},{"rel":"delete","href":"https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/3.0/lists/e73f5910ca/members/140b91c107d2058dee730e75be0b1151","method":"DELETE"},{"rel":"activity","href":"https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/3.0/lists/e73f5910ca/members/140b91c107d2058dee730e75be0b1151/activity","method":"GET","targetSchema":"https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/schema/3.0/Lists/Members/Activity/Collection.json"},{"rel":"goals","href":"https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/3.0/lists/e73f5910ca/members/140b91c107d2058dee730e75be0b1151/goals","method":"GET","targetSchema":"https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/schema/3.0/Lists/Members/Goals/Collection.json"},{"rel":"notes","href":"https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/3.0/lists/e73f5910ca/members/140b91c107d2058dee730e75be0b1151/notes","method":"GET","targetSchema":"https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/schema/3.0/Lists/Members/Notes/Collection.json"}]}'
|
174
174
|
http_version:
|
175
175
|
recorded_at: Tue, 07 Jul 2015 11:29:27 GMT
|
176
|
+
- request:
|
177
|
+
method: get
|
178
|
+
uri: https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/3.0/lists?count=500&exclude_fields=lists._links,_links&offset=0
|
179
|
+
body:
|
180
|
+
encoding: US-ASCII
|
181
|
+
string: ''
|
182
|
+
headers:
|
183
|
+
Accept:
|
184
|
+
- "*/*; q=0.5, application/xml"
|
185
|
+
Accept-Encoding:
|
186
|
+
- gzip, deflate
|
187
|
+
Authorization:
|
188
|
+
- apikey <%= ENV['MAILCHIMP_API_KEY'] %>
|
189
|
+
User-Agent:
|
190
|
+
- Mailchimp API v3 Ruby gem https://rubygems.org/gems/mailchimp_api_v3
|
191
|
+
response:
|
192
|
+
status:
|
193
|
+
code: 200
|
194
|
+
message: OK
|
195
|
+
headers:
|
196
|
+
Server:
|
197
|
+
- nginx
|
198
|
+
Content-Type:
|
199
|
+
- application/json; charset=utf-8
|
200
|
+
Content-Length:
|
201
|
+
- '1173'
|
202
|
+
X-Request-Id:
|
203
|
+
- 7a1c4e60-2ab4-4ce4-9c61-a63a08678de4
|
204
|
+
Link:
|
205
|
+
- <https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/schema/3.0/Lists/Collection.json>; rel="describedBy"
|
206
|
+
Vary:
|
207
|
+
- Accept-Encoding
|
208
|
+
Date:
|
209
|
+
- Wed, 08 Jul 2015 15:15:34 GMT
|
210
|
+
Connection:
|
211
|
+
- keep-alive
|
212
|
+
body:
|
213
|
+
encoding: ASCII-8BIT
|
214
|
+
string: '{"lists":[{"id":"e73f5910ca","name":"My first list","contact":{"company":"InSite
|
215
|
+
Arts","address1":"300 Burdett Road","address2":"London","city":"London","state":"","zip":"E14
|
216
|
+
7DQ","country":"262","phone":"07917153555"},"permission_reminder":"Opt-in
|
217
|
+
only","use_archive_bar":true,"campaign_defaults":{"from_name":"Sam Sayers","from_email":"sam@sayers.cc","subject":"","language":"en"},"notify_on_subscribe":"","notify_on_unsubscribe":"","date_created":"2015-06-27T14:49:18+00:00","list_rating":0,"email_type_option":false,"subscribe_url_short":"http://eepurl.com/brGTO9","subscribe_url_long":"http://insitearts.us11.list-manage.com/subscribe?u=1dbca289fd41b54838bcbb501&id=e73f5910ca","beamer_address":"us11-6692a2b3c3-bcd2a8b144@inbound.mailchimp.com","visibility":"pub","modules":[],"stats":{"member_count":2,"unsubscribe_count":0,"cleaned_count":0,"member_count_since_send":2,"unsubscribe_count_since_send":0,"cleaned_count_since_send":0,"campaign_count":0,"campaign_last_sent":"","merge_field_count":2,"avg_sub_rate":0,"avg_unsub_rate":0,"target_sub_rate":0,"open_rate":0,"click_rate":0,"last_sub_date":"2015-06-27T14:50:39+00:00","last_unsub_date":""}}],"total_items":1}'
|
218
|
+
http_version:
|
219
|
+
recorded_at: Wed, 08 Jul 2015 15:15:34 GMT
|
220
|
+
- request:
|
221
|
+
method: get
|
222
|
+
uri: https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/3.0/lists/e73f5910ca/members?count=500&exclude_fields=members._links,_links&offset=0
|
223
|
+
body:
|
224
|
+
encoding: US-ASCII
|
225
|
+
string: ''
|
226
|
+
headers:
|
227
|
+
Accept:
|
228
|
+
- "*/*; q=0.5, application/xml"
|
229
|
+
Accept-Encoding:
|
230
|
+
- gzip, deflate
|
231
|
+
Authorization:
|
232
|
+
- apikey <%= ENV['MAILCHIMP_API_KEY'] %>
|
233
|
+
User-Agent:
|
234
|
+
- Mailchimp API v3 Ruby gem https://rubygems.org/gems/mailchimp_api_v3
|
235
|
+
response:
|
236
|
+
status:
|
237
|
+
code: 200
|
238
|
+
message: OK
|
239
|
+
headers:
|
240
|
+
Server:
|
241
|
+
- nginx
|
242
|
+
Content-Type:
|
243
|
+
- application/json; charset=utf-8
|
244
|
+
Content-Length:
|
245
|
+
- '1248'
|
246
|
+
X-Request-Id:
|
247
|
+
- 968e4718-b470-40ec-975b-357db8494fcf
|
248
|
+
Link:
|
249
|
+
- <https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/schema/3.0/Lists/Members/Collection.json>;
|
250
|
+
rel="describedBy"
|
251
|
+
Vary:
|
252
|
+
- Accept-Encoding
|
253
|
+
Date:
|
254
|
+
- Wed, 08 Jul 2015 15:15:34 GMT
|
255
|
+
Connection:
|
256
|
+
- keep-alive
|
257
|
+
body:
|
258
|
+
encoding: ASCII-8BIT
|
259
|
+
string: '{"members":[{"id":"140b91c107d2058dee730e75be0b1151","email_address":"ann@sayers.cc","unique_email_id":"37a55cdc48","email_type":"html","status":"subscribed","merge_fields":{"FNAME":"Ann","LNAME":"Example"},"interests":{"ca7ab24b53":false},"stats":{"avg_open_rate":0,"avg_click_rate":0},"ip_signup":"","timestamp_signup":"","ip_opt":"86.163.13.133","timestamp_opt":"2015-06-27
|
260
|
+
14:50:15","member_rating":2,"last_changed":"2015-07-07T12:05:57+00:00","language":"","vip":false,"email_client":"","location":{"latitude":0,"longitude":0,"gmtoff":0,"dstoff":0,"country_code":"","timezone":""},"list_id":"e73f5910ca"},{"id":"a81216d35b4cbfa18632867228be02da","email_address":"bob@sayers.cc","unique_email_id":"3f73c23e26","email_type":"html","status":"subscribed","merge_fields":{"FNAME":"Bob","LNAME":"Example"},"interests":{"ca7ab24b53":false},"stats":{"avg_open_rate":0,"avg_click_rate":0},"ip_signup":"","timestamp_signup":"","ip_opt":"86.163.13.133","timestamp_opt":"2015-06-27
|
261
|
+
14:50:39","member_rating":2,"last_changed":"2015-06-27T14:50:39+00:00","language":"","vip":false,"email_client":"","location":{"latitude":0,"longitude":0,"gmtoff":0,"dstoff":0,"country_code":"","timezone":""},"list_id":"e73f5910ca"}],"list_id":"e73f5910ca","total_items":2}'
|
262
|
+
http_version:
|
263
|
+
recorded_at: Wed, 08 Jul 2015 15:15:34 GMT
|
264
|
+
- request:
|
265
|
+
method: get
|
266
|
+
uri: https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/3.0/lists/e73f5910ca/members?count=500&exclude_fields=members._links,_links&offset=0
|
267
|
+
body:
|
268
|
+
encoding: US-ASCII
|
269
|
+
string: ''
|
270
|
+
headers:
|
271
|
+
Accept:
|
272
|
+
- "*/*; q=0.5, application/xml"
|
273
|
+
Accept-Encoding:
|
274
|
+
- gzip, deflate
|
275
|
+
Authorization:
|
276
|
+
- apikey <%= ENV['MAILCHIMP_API_KEY'] %>
|
277
|
+
User-Agent:
|
278
|
+
- Mailchimp API v3 Ruby gem https://rubygems.org/gems/mailchimp_api_v3
|
279
|
+
response:
|
280
|
+
status:
|
281
|
+
code: 200
|
282
|
+
message: OK
|
283
|
+
headers:
|
284
|
+
Server:
|
285
|
+
- nginx
|
286
|
+
Content-Type:
|
287
|
+
- application/json; charset=utf-8
|
288
|
+
Content-Length:
|
289
|
+
- '1248'
|
290
|
+
X-Request-Id:
|
291
|
+
- f9d7a11e-0935-41b7-abae-1bda642326c2
|
292
|
+
Link:
|
293
|
+
- <https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/schema/3.0/Lists/Members/Collection.json>;
|
294
|
+
rel="describedBy"
|
295
|
+
Vary:
|
296
|
+
- Accept-Encoding
|
297
|
+
Date:
|
298
|
+
- Wed, 08 Jul 2015 15:15:34 GMT
|
299
|
+
Connection:
|
300
|
+
- keep-alive
|
301
|
+
body:
|
302
|
+
encoding: ASCII-8BIT
|
303
|
+
string: '{"members":[{"id":"140b91c107d2058dee730e75be0b1151","email_address":"ann@sayers.cc","unique_email_id":"37a55cdc48","email_type":"html","status":"subscribed","merge_fields":{"FNAME":"Ann","LNAME":"Example"},"interests":{"ca7ab24b53":false},"stats":{"avg_open_rate":0,"avg_click_rate":0},"ip_signup":"","timestamp_signup":"","ip_opt":"86.163.13.133","timestamp_opt":"2015-06-27
|
304
|
+
14:50:15","member_rating":2,"last_changed":"2015-07-07T12:05:57+00:00","language":"","vip":false,"email_client":"","location":{"latitude":0,"longitude":0,"gmtoff":0,"dstoff":0,"country_code":"","timezone":""},"list_id":"e73f5910ca"},{"id":"a81216d35b4cbfa18632867228be02da","email_address":"bob@sayers.cc","unique_email_id":"3f73c23e26","email_type":"html","status":"subscribed","merge_fields":{"FNAME":"Bob","LNAME":"Example"},"interests":{"ca7ab24b53":false},"stats":{"avg_open_rate":0,"avg_click_rate":0},"ip_signup":"","timestamp_signup":"","ip_opt":"86.163.13.133","timestamp_opt":"2015-06-27
|
305
|
+
14:50:39","member_rating":2,"last_changed":"2015-06-27T14:50:39+00:00","language":"","vip":false,"email_client":"","location":{"latitude":0,"longitude":0,"gmtoff":0,"dstoff":0,"country_code":"","timezone":""},"list_id":"e73f5910ca"}],"list_id":"e73f5910ca","total_items":2}'
|
306
|
+
http_version:
|
307
|
+
recorded_at: Wed, 08 Jul 2015 15:15:34 GMT
|
308
|
+
- request:
|
309
|
+
method: get
|
310
|
+
uri: https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/3.0/lists/e73f5910ca/interest-categories?count=500&exclude_fields=categories._links,_links&offset=0
|
311
|
+
body:
|
312
|
+
encoding: US-ASCII
|
313
|
+
string: ''
|
314
|
+
headers:
|
315
|
+
Accept:
|
316
|
+
- "*/*; q=0.5, application/xml"
|
317
|
+
Accept-Encoding:
|
318
|
+
- gzip, deflate
|
319
|
+
Authorization:
|
320
|
+
- apikey <%= ENV['MAILCHIMP_API_KEY'] %>
|
321
|
+
User-Agent:
|
322
|
+
- Mailchimp API v3 Ruby gem https://rubygems.org/gems/mailchimp_api_v3
|
323
|
+
response:
|
324
|
+
status:
|
325
|
+
code: 200
|
326
|
+
message: OK
|
327
|
+
headers:
|
328
|
+
Server:
|
329
|
+
- nginx
|
330
|
+
Content-Type:
|
331
|
+
- application/json; charset=utf-8
|
332
|
+
Content-Length:
|
333
|
+
- '241'
|
334
|
+
X-Request-Id:
|
335
|
+
- 63c50ed8-0b5f-4e83-a097-385bc9ed39db
|
336
|
+
Link:
|
337
|
+
- <https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/schema/3.0/Lists/InterestCategories/Collection.json>;
|
338
|
+
rel="describedBy"
|
339
|
+
Vary:
|
340
|
+
- Accept-Encoding
|
341
|
+
Date:
|
342
|
+
- Wed, 08 Jul 2015 15:16:05 GMT
|
343
|
+
Connection:
|
344
|
+
- keep-alive
|
345
|
+
body:
|
346
|
+
encoding: ASCII-8BIT
|
347
|
+
string: '{"list_id":"e73f5910ca","categories":[{"list_id":"e73f5910ca","id":"f349987e8f","title":"Sex","display_order":0,"type":"radio"},{"list_id":"e73f5910ca","id":"bc914b7356","title":"Days","display_order":1,"type":"checkboxes"}],"total_items":2}'
|
348
|
+
http_version:
|
349
|
+
recorded_at: Wed, 08 Jul 2015 15:16:05 GMT
|
350
|
+
- request:
|
351
|
+
method: get
|
352
|
+
uri: https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/3.0/lists/e73f5910ca/members/140b91c107d2058dee730e75be0b1151
|
353
|
+
body:
|
354
|
+
encoding: US-ASCII
|
355
|
+
string: ''
|
356
|
+
headers:
|
357
|
+
Accept:
|
358
|
+
- "*/*; q=0.5, application/xml"
|
359
|
+
Accept-Encoding:
|
360
|
+
- gzip, deflate
|
361
|
+
Authorization:
|
362
|
+
- apikey <%= ENV['MAILCHIMP_API_KEY'] %>
|
363
|
+
User-Agent:
|
364
|
+
- Mailchimp API v3 Ruby gem https://rubygems.org/gems/mailchimp_api_v3
|
365
|
+
response:
|
366
|
+
status:
|
367
|
+
code: 200
|
368
|
+
message: OK
|
369
|
+
headers:
|
370
|
+
Server:
|
371
|
+
- nginx
|
372
|
+
Content-Type:
|
373
|
+
- application/json; charset=utf-8
|
374
|
+
Content-Length:
|
375
|
+
- '2082'
|
376
|
+
X-Request-Id:
|
377
|
+
- fa15d507-e78c-4d90-87d4-9a69c89d1c57
|
378
|
+
Link:
|
379
|
+
- <https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/schema/3.0/Lists/Members/Instance.json>; rel="describedBy"
|
380
|
+
Vary:
|
381
|
+
- Accept-Encoding
|
382
|
+
Date:
|
383
|
+
- Wed, 08 Jul 2015 15:16:05 GMT
|
384
|
+
Connection:
|
385
|
+
- keep-alive
|
386
|
+
body:
|
387
|
+
encoding: ASCII-8BIT
|
388
|
+
string: '{"id":"140b91c107d2058dee730e75be0b1151","email_address":"ann@sayers.cc","unique_email_id":"37a55cdc48","email_type":"html","status":"subscribed","merge_fields":{"FNAME":"Ann","LNAME":"Example"},"interests":{"ca7ab24b53":false},"stats":{"avg_open_rate":0,"avg_click_rate":0},"ip_signup":"","timestamp_signup":"","ip_opt":"86.163.13.133","timestamp_opt":"2015-06-27
|
389
|
+
14:50:15","member_rating":2,"last_changed":"2015-07-07T12:05:57+00:00","language":"","vip":false,"email_client":"","location":{"latitude":0,"longitude":0,"gmtoff":0,"dstoff":0,"country_code":"","timezone":""},"list_id":"e73f5910ca","_links":[{"rel":"self","href":"https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/3.0/lists/e73f5910ca/members/140b91c107d2058dee730e75be0b1151","method":"GET","targetSchema":"https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/schema/3.0/Lists/Members/Instance.json"},{"rel":"parent","href":"https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/3.0/lists/e73f5910ca/members","method":"GET","targetSchema":"https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/schema/3.0/Lists/Members/Collection.json"},{"rel":"update","href":"https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/3.0/lists/e73f5910ca/members/140b91c107d2058dee730e75be0b1151","method":"PATCH","schema":"https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/schema/3.0/Lists/Members/Instance.json"},{"rel":"delete","href":"https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/3.0/lists/e73f5910ca/members/140b91c107d2058dee730e75be0b1151","method":"DELETE"},{"rel":"activity","href":"https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/3.0/lists/e73f5910ca/members/140b91c107d2058dee730e75be0b1151/activity","method":"GET","targetSchema":"https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/schema/3.0/Lists/Members/Activity/Collection.json"},{"rel":"goals","href":"https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/3.0/lists/e73f5910ca/members/140b91c107d2058dee730e75be0b1151/goals","method":"GET","targetSchema":"https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/schema/3.0/Lists/Members/Goals/Collection.json"},{"rel":"notes","href":"https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/3.0/lists/e73f5910ca/members/140b91c107d2058dee730e75be0b1151/notes","method":"GET","targetSchema":"https://<%= ENV['MAILCHIMP_DC'] %>.api.mailchimp.com/schema/3.0/Lists/Members/Notes/Collection.json"}]}'
|
390
|
+
http_version:
|
391
|
+
recorded_at: Wed, 08 Jul 2015 15:16:05 GMT
|
176
392
|
recorded_with: VCR 2.9.3
|
@@ -28,6 +28,12 @@ describe Mailchimp::List, vcr: { cassette_name: 'list' } do
|
|
28
28
|
expect(members.sample).to be_a Mailchimp::List::Member
|
29
29
|
end
|
30
30
|
|
31
|
+
it 'gets a subset of members' do
|
32
|
+
members = list.members last_name: 'Example'
|
33
|
+
expect(members).to be_an Array
|
34
|
+
expect(members.sample).to be_a Mailchimp::List::Member
|
35
|
+
end
|
36
|
+
|
31
37
|
it 'has a interest_categories collection' do
|
32
38
|
interest_categories = list.interest_categories
|
33
39
|
expect(interest_categories).to be_an Array
|
@@ -51,5 +57,11 @@ describe Mailchimp::List, vcr: { cassette_name: 'list' } do
|
|
51
57
|
expect(member.id).to eq id
|
52
58
|
expect(member.email_address).to eq email_address
|
53
59
|
end
|
60
|
+
|
61
|
+
it 'gets a member by name' do
|
62
|
+
member = list.members 'Ann Example'
|
63
|
+
expect(member).to be_a Mailchimp::List::Member
|
64
|
+
expect(member.id).to eq id
|
65
|
+
end
|
54
66
|
end
|
55
67
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mailchimp_api_v3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Xenapto
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-07-
|
11
|
+
date: 2015-07-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -282,7 +282,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
282
282
|
version: '0'
|
283
283
|
requirements: []
|
284
284
|
rubyforge_project:
|
285
|
-
rubygems_version: 2.4.
|
285
|
+
rubygems_version: 2.4.7
|
286
286
|
signing_key:
|
287
287
|
specification_version: 4
|
288
288
|
summary: 'Example: mailchimp.lists("My first list").member("ann@example.com")'
|
@@ -314,4 +314,3 @@ test_files:
|
|
314
314
|
- spec/spec_helper.rb
|
315
315
|
- spec/support/api_key.rb
|
316
316
|
- spec/support/vcr_setup.rb
|
317
|
-
has_rdoc:
|