createsend 4.1.2 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +5 -5
  2. data/HISTORY.md +29 -0
  3. data/README.md +4 -4
  4. data/RELEASE.md +1 -1
  5. data/Rakefile +1 -1
  6. data/createsend.gemspec +1 -1
  7. data/lib/createsend/campaign.rb +1 -1
  8. data/lib/createsend/client.rb +25 -3
  9. data/lib/createsend/createsend.rb +3 -1
  10. data/lib/createsend/journey.rb +58 -0
  11. data/lib/createsend/list.rb +13 -12
  12. data/lib/createsend/segment.rb +3 -2
  13. data/lib/createsend/subscriber.rb +15 -10
  14. data/lib/createsend/version.rb +1 -1
  15. data/lib/createsend.rb +1 -0
  16. data/samples/authentication_sample.rb +64 -0
  17. data/samples/clients_sample.rb +79 -0
  18. data/samples/journey_sample.rb +87 -0
  19. data/samples/lists_sample.rb +41 -0
  20. data/samples/segments_sample.rb +21 -0
  21. data/samples/subscribes_sample.rb +22 -0
  22. data/test/administrator_test.rb +3 -3
  23. data/test/campaign_test.rb +6 -5
  24. data/test/client_test.rb +67 -36
  25. data/test/createsend_test.rb +4 -4
  26. data/test/fixtures/active_subscribers.json +5 -0
  27. data/test/fixtures/bounced_subscribers.json +1 -0
  28. data/test/fixtures/campaign_summary.json +2 -1
  29. data/test/fixtures/campaigns.json +37 -26
  30. data/test/fixtures/deleted_subscribers.json +5 -0
  31. data/test/fixtures/drafts.json +4 -2
  32. data/test/fixtures/journey_bounces.json +35 -0
  33. data/test/fixtures/journey_clicks.json +35 -0
  34. data/test/fixtures/journey_opens.json +55 -0
  35. data/test/fixtures/journey_recipients.json +27 -0
  36. data/test/fixtures/journey_summary.json +18 -0
  37. data/test/fixtures/journey_unsubscribes.json +26 -0
  38. data/test/fixtures/journeys.json +20 -0
  39. data/test/fixtures/scheduled_campaigns.json +4 -2
  40. data/test/fixtures/segment_subscribers.json +2 -0
  41. data/test/fixtures/subscriber_details.json +1 -0
  42. data/test/fixtures/subscriber_details_with_track_pref.json +23 -0
  43. data/test/fixtures/tags.json +10 -0
  44. data/test/fixtures/unconfirmed_subscribers.json +6 -2
  45. data/test/fixtures/unsubscribed_subscribers.json +6 -1
  46. data/test/helper.rb +3 -2
  47. data/test/journey_test.rb +156 -0
  48. data/test/list_test.rb +16 -9
  49. data/test/person_test.rb +3 -3
  50. data/test/segment_test.rb +2 -1
  51. data/test/subscriber_test.rb +22 -12
  52. metadata +25 -9
@@ -9,11 +9,12 @@ class SubscriberTest < Test::Unit::TestCase
9
9
 
10
10
  should "get a subscriber by list id and email address" do
11
11
  email = "subscriber@example.com"
12
- stub_get(@auth, "subscribers/#{@list_id}.json?email=#{CGI.escape(email)}", "subscriber_details.json")
12
+ stub_get(@auth, "subscribers/#{@list_id}.json?email=#{ERB::Util.url_encode(email)}&includetrackingpreference=false", "subscriber_details.json")
13
13
  subscriber = CreateSend::Subscriber.get @auth, @list_id, email
14
14
  subscriber.EmailAddress.should == email
15
15
  subscriber.Name.should == "Subscriber One"
16
16
  subscriber.Date.should == "2010-10-25 10:28:00"
17
+ subscriber.ListJoinedDate.should == "2010-10-25 10:28:00"
17
18
  subscriber.State.should == "Active"
18
19
  subscriber.CustomFields.size.should == 3
19
20
  subscriber.CustomFields.first.Key.should == 'website'
@@ -21,16 +22,25 @@ class SubscriberTest < Test::Unit::TestCase
21
22
  subscriber.ReadsEmailWith.should == "Gmail"
22
23
  end
23
24
 
25
+ should "get a subscriber with track preference information" do
26
+ email = "subscriber@example.com"
27
+ stub_get(@auth, "subscribers/#{@list_id}.json?email=#{ERB::Util.url_encode(email)}&includetrackingpreference=true", "subscriber_details_with_track_pref.json")
28
+ subscriber = CreateSend::Subscriber.get @auth, @list_id, email, true
29
+ subscriber.EmailAddress.should == email
30
+ subscriber.Name.should == "Subscriber One"
31
+ subscriber.ConsentToTrack == "Yes"
32
+ end
33
+
24
34
  should "add a subscriber without custom fields" do
25
35
  stub_post(@auth, "subscribers/#{@list_id}.json", "add_subscriber.json")
26
- email_address = CreateSend::Subscriber.add @auth, @list_id, "subscriber@example.com", "Subscriber", [], true
36
+ email_address = CreateSend::Subscriber.add @auth, @list_id, "subscriber@example.com", "Subscriber", [], true, "Yes"
27
37
  email_address.should == "subscriber@example.com"
28
38
  end
29
39
 
30
40
  should "add a subscriber with custom fields" do
31
41
  stub_post(@auth, "subscribers/#{@list_id}.json", "add_subscriber.json")
32
42
  custom_fields = [ { :Key => 'website', :Value => 'http://example.com/' } ]
33
- email_address = CreateSend::Subscriber.add @auth, @list_id, "subscriber@example.com", "Subscriber", custom_fields, true
43
+ email_address = CreateSend::Subscriber.add @auth, @list_id, "subscriber@example.com", "Subscriber", custom_fields, true, "Yes"
34
44
  email_address.should == "subscriber@example.com"
35
45
  end
36
46
 
@@ -39,25 +49,25 @@ class SubscriberTest < Test::Unit::TestCase
39
49
  custom_fields = [ { :Key => 'multioptionselectone', :Value => 'myoption' },
40
50
  { :Key => 'multioptionselectmany', :Value => 'firstoption' },
41
51
  { :Key => 'multioptionselectmany', :Value => 'secondoption' } ]
42
- email_address = CreateSend::Subscriber.add @auth, @list_id, "subscriber@example.com", "Subscriber", custom_fields, true
52
+ email_address = CreateSend::Subscriber.add @auth, @list_id, "subscriber@example.com", "Subscriber", custom_fields, true, "Yes"
43
53
  email_address.should == "subscriber@example.com"
44
54
  end
45
55
 
46
56
  should "update a subscriber with custom fields" do
47
57
  email = "subscriber@example.com"
48
58
  new_email = "new_email_address@example.com"
49
- stub_put(@auth, "subscribers/#{@list_id}.json?email=#{CGI.escape(email)}", nil)
59
+ stub_put(@auth, "subscribers/#{@list_id}.json?email=#{ERB::Util.url_encode(email)}", nil)
50
60
  custom_fields = [ { :Key => 'website', :Value => 'http://example.com/' } ]
51
- @subscriber.update new_email, "Subscriber", custom_fields, true
61
+ @subscriber.update new_email, "Subscriber", custom_fields, true, "Yes"
52
62
  @subscriber.email_address.should == new_email
53
63
  end
54
64
 
55
65
  should "update a subscriber with custom fields including the clear option" do
56
66
  email = "subscriber@example.com"
57
67
  new_email = "new_email_address@example.com"
58
- stub_put(@auth, "subscribers/#{@list_id}.json?email=#{CGI.escape(email)}", nil)
68
+ stub_put(@auth, "subscribers/#{@list_id}.json?email=#{ERB::Util.url_encode(email)}", nil)
59
69
  custom_fields = [ { :Key => 'website', :Value => '', :Clear => true } ]
60
- @subscriber.update new_email, "Subscriber", custom_fields, true
70
+ @subscriber.update new_email, "Subscriber", custom_fields, true, "No"
61
71
  @subscriber.email_address.should == new_email
62
72
  end
63
73
 
@@ -133,8 +143,8 @@ class SubscriberTest < Test::Unit::TestCase
133
143
  { :EmailAddress => "example+2@example.com", :Name => "Example Two" },
134
144
  { :EmailAddress => "example+3@example.com", :Name => "Example Three" },
135
145
  ]
136
- lambda { import_result = CreateSend::Subscriber.import @auth, @list_id, subscribers, true
137
- }.should raise_error(CreateSend::BadRequest)
146
+ lambda { import_result = CreateSend::Subscriber.import @auth, @list_id, subscribers,
147
+ true }.should raise_error(CreateSend::BadRequest)
138
148
  end
139
149
 
140
150
  should "unsubscribe a subscriber" do
@@ -143,7 +153,7 @@ class SubscriberTest < Test::Unit::TestCase
143
153
  end
144
154
 
145
155
  should "get a subscriber's history" do
146
- stub_get(@auth, "subscribers/#{@subscriber.list_id}/history.json?email=#{CGI.escape(@subscriber.email_address)}", "subscriber_history.json")
156
+ stub_get(@auth, "subscribers/#{@subscriber.list_id}/history.json?email=#{ERB::Util.url_encode(@subscriber.email_address)}", "subscriber_history.json")
147
157
  history = @subscriber.history
148
158
  history.size.should == 1
149
159
  history.first.Name.should == "Campaign One"
@@ -157,7 +167,7 @@ class SubscriberTest < Test::Unit::TestCase
157
167
  end
158
168
 
159
169
  should "delete a subscriber" do
160
- stub_delete(@auth, "subscribers/#{@subscriber.list_id}.json?email=#{CGI.escape(@subscriber.email_address)}", nil)
170
+ stub_delete(@auth, "subscribers/#{@subscriber.list_id}.json?email=#{ERB::Util.url_encode(@subscriber.email_address)}", nil)
161
171
  @subscriber.delete
162
172
  end
163
173
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: createsend
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.2
4
+ version: 6.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Dennes
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-27 00:00:00.000000000 Z
11
+ date: 2022-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '10.0'
61
+ version: 12.3.3
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '10.0'
68
+ version: 12.3.3
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: fakeweb
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -174,6 +174,7 @@ files:
174
174
  - lib/createsend/campaign.rb
175
175
  - lib/createsend/client.rb
176
176
  - lib/createsend/createsend.rb
177
+ - lib/createsend/journey.rb
177
178
  - lib/createsend/list.rb
178
179
  - lib/createsend/person.rb
179
180
  - lib/createsend/segment.rb
@@ -183,6 +184,12 @@ files:
183
184
  - lib/createsend/transactional_smart_email.rb
184
185
  - lib/createsend/transactional_timeline.rb
185
186
  - lib/createsend/version.rb
187
+ - samples/authentication_sample.rb
188
+ - samples/clients_sample.rb
189
+ - samples/journey_sample.rb
190
+ - samples/lists_sample.rb
191
+ - samples/segments_sample.rb
192
+ - samples/subscribes_sample.rb
186
193
  - test/administrator_test.rb
187
194
  - test/campaign_test.rb
188
195
  - test/client_test.rb
@@ -228,6 +235,13 @@ files:
228
235
  - test/fixtures/import_subscribers.json
229
236
  - test/fixtures/import_subscribers_partial_success.json
230
237
  - test/fixtures/invalid_oauth_token_api_error.json
238
+ - test/fixtures/journey_bounces.json
239
+ - test/fixtures/journey_clicks.json
240
+ - test/fixtures/journey_opens.json
241
+ - test/fixtures/journey_recipients.json
242
+ - test/fixtures/journey_summary.json
243
+ - test/fixtures/journey_unsubscribes.json
244
+ - test/fixtures/journeys.json
231
245
  - test/fixtures/list_details.json
232
246
  - test/fixtures/list_stats.json
233
247
  - test/fixtures/list_webhooks.json
@@ -245,9 +259,11 @@ files:
245
259
  - test/fixtures/segment_subscribers.json
246
260
  - test/fixtures/segments.json
247
261
  - test/fixtures/subscriber_details.json
262
+ - test/fixtures/subscriber_details_with_track_pref.json
248
263
  - test/fixtures/subscriber_history.json
249
264
  - test/fixtures/suppressionlist.json
250
265
  - test/fixtures/systemdate.json
266
+ - test/fixtures/tags.json
251
267
  - test/fixtures/template_details.json
252
268
  - test/fixtures/templates.json
253
269
  - test/fixtures/timezones.json
@@ -269,6 +285,7 @@ files:
269
285
  - test/fixtures/unsubscribed_subscribers.json
270
286
  - test/fixtures/update_custom_field.json
271
287
  - test/helper.rb
288
+ - test/journey_test.rb
272
289
  - test/list_test.rb
273
290
  - test/person_test.rb
274
291
  - test/segment_test.rb
@@ -281,7 +298,7 @@ homepage: http://campaignmonitor.github.io/createsend-ruby/
281
298
  licenses:
282
299
  - MIT
283
300
  metadata: {}
284
- post_install_message:
301
+ post_install_message:
285
302
  rdoc_options: []
286
303
  require_paths:
287
304
  - lib
@@ -296,9 +313,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
296
313
  - !ruby/object:Gem::Version
297
314
  version: 1.3.6
298
315
  requirements: []
299
- rubyforge_project:
300
- rubygems_version: 2.5.2
301
- signing_key:
316
+ rubygems_version: 3.3.3
317
+ signing_key:
302
318
  specification_version: 4
303
319
  summary: A library which implements the complete functionality of the Campaign Monitor
304
320
  API.