createsend 4.1.2 → 6.0.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.
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
@@ -0,0 +1,41 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require 'createsend'
3
+
4
+ class ListsSample
5
+ def initialize
6
+ raise 'CREATESEND_ACCESS_TOKEN env var missing' if ENV['CREATESEND_ACCESS_TOKEN'].nil?
7
+ raise 'CREATESEND_REFRESH_TOKEN env var missing' if ENV['CREATESEND_REFRESH_TOKEN'].nil?
8
+ raise 'CREATESEND_LIST_ID env var missing' if ENV['CREATESEND_LIST_ID'].nil?
9
+
10
+ auth = {:access_token => ENV['CREATESEND_ACCESS_TOKEN'], :refresh_token => ENV['CREATESEND_REFRESH_TOKEN']}
11
+ @list = CreateSend::List.new auth, ENV['CREATESEND_LIST_ID']
12
+ end
13
+
14
+ def get_active_subscribers
15
+ @list.active
16
+ end
17
+
18
+ def get_bounced_subscribers
19
+ @list.bounced
20
+ end
21
+
22
+ def get_unsubscribed_subscribers
23
+ @list.unsubscribed
24
+ end
25
+
26
+ def get_unconfirmed_subscribers
27
+ @list.unconfirmed
28
+ end
29
+
30
+ def get_deleted_subscribers
31
+ @list.deleted
32
+ end
33
+ end
34
+
35
+ sample = ListsSample.new
36
+
37
+ puts "All active subscribers: #{sample.get_active_subscribers.to_json}\n\n"
38
+ puts "All bounced subscribers: #{sample.get_bounced_subscribers.to_json}\n\n"
39
+ puts "All unsubscribed subscribers: #{sample.get_unsubscribed_subscribers.to_json}\n\n"
40
+ puts "All unconfirmed subscribers: #{sample.get_unconfirmed_subscribers.to_json}\n\n"
41
+ puts "All deleted subscribers: #{sample.get_deleted_subscribers.to_json}\n\n"
@@ -0,0 +1,21 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require 'createsend'
3
+
4
+ class SegmentsSample
5
+ def initialize
6
+ raise 'CREATESEND_ACCESS_TOKEN env var missing' if ENV['CREATESEND_ACCESS_TOKEN'].nil?
7
+ raise 'CREATESEND_REFRESH_TOKEN env var missing' if ENV['CREATESEND_REFRESH_TOKEN'].nil?
8
+ raise 'CREATESEND_SEGMENT_ID env var missing' if ENV['CREATESEND_SEGMENT_ID'].nil?
9
+
10
+ auth = {:access_token => ENV['CREATESEND_ACCESS_TOKEN'], :refresh_token => ENV['CREATESEND_REFRESH_TOKEN']}
11
+ @segment = CreateSend::Segment.new auth, ENV['CREATESEND_SEGMENT_ID']
12
+ end
13
+
14
+ def get_active_subscribers
15
+ @segment.subscribers
16
+ end
17
+ end
18
+
19
+ sample = SegmentsSample.new
20
+
21
+ puts "All active subscribers: #{sample.get_active_subscribers.to_json}\n\n"
@@ -0,0 +1,22 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require 'createsend'
3
+
4
+ class SubscribersSample
5
+ def initialize
6
+ raise 'CREATESEND_ACCESS_TOKEN env var missing' if ENV['CREATESEND_ACCESS_TOKEN'].nil?
7
+ raise 'CREATESEND_REFRESH_TOKEN env var missing' if ENV['CREATESEND_REFRESH_TOKEN'].nil?
8
+ raise 'CREATESEND_LIST_ID env var missing' if ENV['CREATESEND_LIST_ID'].nil?
9
+ raise 'CREATESEND_EMAIL_ADDRESS env var missing' if ENV['CREATESEND_EMAIL_ADDRESS'].nil?
10
+
11
+ auth = {:access_token => ENV['CREATESEND_ACCESS_TOKEN'], :refresh_token => ENV['CREATESEND_REFRESH_TOKEN']}
12
+ @subscriber = CreateSend::Subscriber.get auth, ENV['CREATESEND_LIST_ID'], ENV['CREATESEND_EMAIL_ADDRESS']
13
+ end
14
+
15
+ def get_subscriber
16
+ @subscriber
17
+ end
18
+ end
19
+
20
+ sample = SubscribersSample.new
21
+
22
+ puts "detailed subscribers: #{sample.get_subscriber.to_json}\n\n"
@@ -8,7 +8,7 @@ class AdministratorTest < Test::Unit::TestCase
8
8
 
9
9
  should "get a administrator by email address" do
10
10
  email = "admin@example.com"
11
- stub_get(@auth, "admins.json?email=#{CGI.escape(email)}", "admin_details.json")
11
+ stub_get(@auth, "admins.json?email=#{ERB::Util.url_encode(email)}", "admin_details.json")
12
12
  admin = CreateSend::Administrator.get @auth, email
13
13
  admin.EmailAddress.should == email
14
14
  admin.Name.should == "Admin One"
@@ -24,13 +24,13 @@ class AdministratorTest < Test::Unit::TestCase
24
24
  should "update an administrator" do
25
25
  email = "admin@example.com"
26
26
  new_email = "new_email_address@example.com"
27
- stub_put(@auth, "admins.json?email=#{CGI.escape(email)}", nil)
27
+ stub_put(@auth, "admins.json?email=#{ERB::Util.url_encode(email)}", nil)
28
28
  @admin.update new_email, "Admin Name"
29
29
  @admin.email_address.should == new_email
30
30
  end
31
31
 
32
32
  should "delete an admin" do
33
- stub_delete(@auth, "admins.json?email=#{CGI.escape(@admin.email_address)}", nil)
33
+ stub_delete(@auth, "admins.json?email=#{ERB::Util.url_encode(@admin.email_address)}", nil)
34
34
  @admin.delete
35
35
  end
36
36
  end
@@ -137,6 +137,7 @@ class CampaignTest < Test::Unit::TestCase
137
137
  should "get the summary for a campaign" do
138
138
  stub_get(@auth, "campaigns/#{@campaign.campaign_id}/summary.json", "campaign_summary.json")
139
139
  summary = @campaign.summary
140
+ summary.Name.should == "Campaign Name"
140
141
  summary.Recipients.should == 5
141
142
  summary.TotalOpened.should == 10
142
143
  summary.Clicks.should == 0
@@ -191,7 +192,7 @@ class CampaignTest < Test::Unit::TestCase
191
192
 
192
193
  should "get the opens for a campaign" do
193
194
  min_date = "2010-01-01"
194
- stub_get(@auth, "campaigns/#{@campaign.campaign_id}/opens.json?page=1&pagesize=1000&orderfield=date&orderdirection=asc&date=#{CGI.escape(min_date)}", "campaign_opens.json")
195
+ stub_get(@auth, "campaigns/#{@campaign.campaign_id}/opens.json?page=1&pagesize=1000&orderfield=date&orderdirection=asc&date=#{ERB::Util.url_encode(min_date)}", "campaign_opens.json")
195
196
  opens = @campaign.opens min_date
196
197
  opens.Results.size.should == 5
197
198
  opens.Results.first.EmailAddress.should == "subs+6576576576@example.com"
@@ -215,7 +216,7 @@ class CampaignTest < Test::Unit::TestCase
215
216
 
216
217
  should "get the subscriber clicks for a campaign" do
217
218
  min_date = "2010-01-01"
218
- stub_get(@auth, "campaigns/#{@campaign.campaign_id}/clicks.json?page=1&pagesize=1000&orderfield=date&orderdirection=asc&date=#{CGI.escape(min_date)}", "campaign_clicks.json")
219
+ stub_get(@auth, "campaigns/#{@campaign.campaign_id}/clicks.json?page=1&pagesize=1000&orderfield=date&orderdirection=asc&date=#{ERB::Util.url_encode(min_date)}", "campaign_clicks.json")
219
220
  clicks = @campaign.clicks min_date
220
221
  clicks.Results.size.should == 3
221
222
  clicks.Results.first.EmailAddress.should == "subs+6576576576@example.com"
@@ -240,7 +241,7 @@ class CampaignTest < Test::Unit::TestCase
240
241
 
241
242
  should "get the unsubscribes for a campaign" do
242
243
  min_date = "2010-01-01"
243
- stub_get(@auth, "campaigns/#{@campaign.campaign_id}/unsubscribes.json?page=1&pagesize=1000&orderfield=date&orderdirection=asc&date=#{CGI.escape(min_date)}", "campaign_unsubscribes.json")
244
+ stub_get(@auth, "campaigns/#{@campaign.campaign_id}/unsubscribes.json?page=1&pagesize=1000&orderfield=date&orderdirection=asc&date=#{ERB::Util.url_encode(min_date)}", "campaign_unsubscribes.json")
244
245
  unsubscribes = @campaign.unsubscribes min_date
245
246
  unsubscribes.Results.size.should == 1
246
247
  unsubscribes.Results.first.EmailAddress.should == "subs+6576576576@example.com"
@@ -258,7 +259,7 @@ class CampaignTest < Test::Unit::TestCase
258
259
 
259
260
  should "get the spam complaints for a campaign" do
260
261
  min_date = "2010-01-01"
261
- stub_get(@auth, "campaigns/#{@campaign.campaign_id}/spam.json?page=1&pagesize=1000&orderfield=date&orderdirection=asc&date=#{CGI.escape(min_date)}", "campaign_spam.json")
262
+ stub_get(@auth, "campaigns/#{@campaign.campaign_id}/spam.json?page=1&pagesize=1000&orderfield=date&orderdirection=asc&date=#{ERB::Util.url_encode(min_date)}", "campaign_spam.json")
262
263
  spam = @campaign.spam min_date
263
264
  spam.Results.size.should == 1
264
265
  spam.Results.first.EmailAddress.should == "subs+6576576576@example.com"
@@ -275,7 +276,7 @@ class CampaignTest < Test::Unit::TestCase
275
276
 
276
277
  should "get the bounces for a campaign" do
277
278
  min_date = "2010-01-01"
278
- stub_get(@auth, "campaigns/#{@campaign.campaign_id}/bounces.json?page=1&pagesize=1000&orderfield=date&orderdirection=asc&date=#{CGI.escape(min_date)}", "campaign_bounces.json")
279
+ stub_get(@auth, "campaigns/#{@campaign.campaign_id}/bounces.json?page=1&pagesize=1000&orderfield=date&orderdirection=asc&date=#{ERB::Util.url_encode(min_date)}", "campaign_bounces.json")
279
280
  bounces = @campaign.bounces min_date
280
281
  bounces.Results.size.should == 2
281
282
  bounces.Results.first.EmailAddress.should == "asdf@softbouncemyemail.com"
data/test/client_test.rb CHANGED
@@ -26,51 +26,74 @@ class ClientTest < Test::Unit::TestCase
26
26
  end
27
27
 
28
28
  should "get all campaigns" do
29
- stub_get(@auth, "clients/#{@client.client_id}/campaigns.json", "campaigns.json")
29
+ stub_get(@auth, "clients/#{@client.client_id}/campaigns.json?page=1&pagesize=1000&orderdirection=desc&sentfromdate=&senttodate=&tags=", "campaigns.json")
30
30
  campaigns = @client.campaigns
31
- campaigns.size.should == 2
32
- campaigns.first.CampaignID.should == 'fc0ce7105baeaf97f47c99be31d02a91'
33
- campaigns.first.WebVersionURL.should == 'http://createsend.com/t/r-765E86829575EE2C'
34
- campaigns.first.WebVersionTextURL.should == 'http://createsend.com/t/r-765E86829575EE2C/t'
35
- campaigns.first.Subject.should == 'Campaign One'
36
- campaigns.first.Name.should == 'Campaign One'
37
- campaigns.first.SentDate.should == '2010-10-12 12:58:00'
38
- campaigns.first.TotalRecipients.should == 2245
39
- campaigns.first.FromName.should == 'My Name'
40
- campaigns.first.FromEmail.should == 'myemail@example.com'
41
- campaigns.first.ReplyTo.should == 'myemail@example.com'
31
+ campaigns.Results.size.should == 2
32
+ campaigns.ResultsOrderedBy == 'sentdate'
33
+ campaigns.OrderDirection = 'desc'
34
+ campaigns.PageNumber == 1
35
+ campaigns.PageSize == 1000
36
+ campaigns.RecordsOnThisPage == 2
37
+ campaigns.TotalNumberOfRecords == 2
38
+ campaigns.NumberOfPages == 1
39
+
40
+ campaign = campaigns.Results.first
41
+ campaign.CampaignID.should == 'fc0ce7105baeaf97f47c99be31d02a91'
42
+ campaign.WebVersionURL.should == 'http://createsend.com/t/r-765E86829575EE2C'
43
+ campaign.WebVersionTextURL.should == 'http://createsend.com/t/r-765E86829575EE2C/t'
44
+ campaign.Subject.should == 'Campaign One'
45
+ campaign.Name.should == 'Campaign One'
46
+ campaign.SentDate.should == '2010-10-12 12:58:00'
47
+ campaign.TotalRecipients.should == 2245
48
+ campaign.FromName.should == 'My Name'
49
+ campaign.FromEmail.should == 'myemail@example.com'
50
+ campaign.ReplyTo.should == 'myemail@example.com'
51
+ campaign.Tags.should == []
42
52
  end
43
53
 
44
54
  should "get scheduled campaigns" do
45
55
  stub_get(@auth, "clients/#{@client.client_id}/scheduled.json", "scheduled_campaigns.json")
46
56
  campaigns = @client.scheduled
47
57
  campaigns.size.should == 2
48
- campaigns.first.DateScheduled.should == "2011-05-25 10:40:00"
49
- campaigns.first.ScheduledTimeZone.should == "(GMT+10:00) Canberra, Melbourne, Sydney"
50
- campaigns.first.CampaignID.should == "827dbbd2161ea9989fa11ad562c66937"
51
- campaigns.first.Name.should == "Magic Issue One"
52
- campaigns.first.Subject.should == "Magic Issue One"
53
- campaigns.first.DateCreated.should == "2011-05-24 10:37:00"
54
- campaigns.first.PreviewURL.should == "http://createsend.com/t/r-DD543521A87C9B8B"
55
- campaigns.first.PreviewTextURL.should == "http://createsend.com/t/r-DD543521A87C9B8B/t"
56
- campaigns.first.FromName.should == 'My Name'
57
- campaigns.first.FromEmail.should == 'myemail@example.com'
58
- campaigns.first.ReplyTo.should == 'myemail@example.com'
58
+ campaign = campaigns.first
59
+ campaign.DateScheduled.should == "2011-05-25 10:40:00"
60
+ campaign.ScheduledTimeZone.should == "(GMT+10:00) Canberra, Melbourne, Sydney"
61
+ campaign.CampaignID.should == "827dbbd2161ea9989fa11ad562c66937"
62
+ campaign.Name.should == "Magic Issue One"
63
+ campaign.Subject.should == "Magic Issue One"
64
+ campaign.DateCreated.should == "2011-05-24 10:37:00"
65
+ campaign.PreviewURL.should == "http://createsend.com/t/r-DD543521A87C9B8B"
66
+ campaign.PreviewTextURL.should == "http://createsend.com/t/r-DD543521A87C9B8B/t"
67
+ campaign.FromName.should == 'My Name'
68
+ campaign.FromEmail.should == 'myemail@example.com'
69
+ campaign.ReplyTo.should == 'myemail@example.com'
70
+ campaign.Tags.should == ['tagexample']
59
71
  end
60
72
 
61
73
  should "get all drafts" do
62
74
  stub_get(@auth, "clients/#{@client.client_id}/drafts.json", "drafts.json")
63
75
  drafts = @client.drafts
64
76
  drafts.size.should == 2
65
- drafts.first.CampaignID.should == '7c7424792065d92627139208c8c01db1'
66
- drafts.first.Name.should == 'Draft One'
67
- drafts.first.Subject.should == 'Draft One'
68
- drafts.first.DateCreated.should == '2010-08-19 16:08:00'
69
- drafts.first.PreviewURL.should == 'http://createsend.com/t/r-E97A7BB2E6983DA1'
70
- drafts.first.PreviewTextURL.should == 'http://createsend.com/t/r-E97A7BB2E6983DA1/t'
71
- drafts.first.FromName.should == 'My Name'
72
- drafts.first.FromEmail.should == 'myemail@example.com'
73
- drafts.first.ReplyTo.should == 'myemail@example.com'
77
+ draft = drafts.first
78
+ draft.CampaignID.should == '7c7424792065d92627139208c8c01db1'
79
+ draft.Name.should == 'Draft One'
80
+ draft.Subject.should == 'Draft One'
81
+ draft.DateCreated.should == '2010-08-19 16:08:00'
82
+ draft.PreviewURL.should == 'http://createsend.com/t/r-E97A7BB2E6983DA1'
83
+ draft.PreviewTextURL.should == 'http://createsend.com/t/r-E97A7BB2E6983DA1/t'
84
+ draft.FromName.should == 'My Name'
85
+ draft.FromEmail.should == 'myemail@example.com'
86
+ draft.ReplyTo.should == 'myemail@example.com'
87
+ draft.Tags.should == ['tagexample']
88
+ end
89
+
90
+ should "get all client tags" do
91
+ stub_get(@auth, "clients/#{@client.client_id}/tags.json", "tags.json")
92
+ tags = @client.tags
93
+ tags.size.should == 2
94
+ tag = tags.first
95
+ tag.Name.should == 'Tag One'
96
+ tag.NumberOfCampaigns.should == '120'
74
97
  end
75
98
 
76
99
  should "get all lists" do
@@ -83,7 +106,7 @@ class ClientTest < Test::Unit::TestCase
83
106
 
84
107
  should "get all lists to which a subscriber with a particular email address belongs" do
85
108
  email = "valid@example.com"
86
- stub_get(@auth, "clients/#{@client.client_id}/listsforemail.json?email=#{CGI.escape(email)}", "listsforemail.json")
109
+ stub_get(@auth, "clients/#{@client.client_id}/listsforemail.json?email=#{ERB::Util.url_encode(email)}", "listsforemail.json")
87
110
  lists = @client.lists_for_email(email)
88
111
  lists.size.should == 2
89
112
  lists.first.ListID.should == 'ab4a2b57c7c8f1ba62f898a1af1a575b'
@@ -131,7 +154,7 @@ class ClientTest < Test::Unit::TestCase
131
154
 
132
155
  should "unsuppress an email address" do
133
156
  email = "example@example.com"
134
- stub_put(@auth, "clients/#{@client.client_id}/unsuppress.json?email=#{CGI.escape(email)}", nil)
157
+ stub_put(@auth, "clients/#{@client.client_id}/unsuppress.json?email=#{ERB::Util.url_encode(email)}", nil)
135
158
  result = @client.unsuppress email
136
159
  end
137
160
 
@@ -155,7 +178,7 @@ class ClientTest < Test::Unit::TestCase
155
178
 
156
179
  should "set primary contact" do
157
180
  email = 'person@blackhole.com'
158
- stub_put(@auth, "clients/#{@client.client_id}/primarycontact.json?email=#{CGI.escape(email)}", 'client_set_primary_contact.json')
181
+ stub_put(@auth, "clients/#{@client.client_id}/primarycontact.json?email=#{ERB::Util.url_encode(email)}", 'client_set_primary_contact.json')
159
182
  result = @client.set_primary_contact email
160
183
  result.EmailAddress.should == email
161
184
  end
@@ -217,6 +240,14 @@ class ClientTest < Test::Unit::TestCase
217
240
  stub_delete(@auth, "clients/#{@client.client_id}.json", nil)
218
241
  @client.delete
219
242
  end
220
-
243
+
244
+ should "get all journeys" do
245
+ stub_get(@auth, "clients/#{@client.client_id}/journeys.json", "journeys.json")
246
+ lists = @client.journeys
247
+ lists.size.should == 3
248
+ lists.first.ListID.should == 'a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a'
249
+ lists.first.Name.should == 'Journey One'
250
+ lists.first.Status.should == 'Not started'
251
+ end
221
252
  end
222
253
  end
@@ -82,7 +82,7 @@ class CreateSendTest < Test::Unit::TestCase
82
82
  FakeWeb.register_uri(:post, "https://api.createsend.com/oauth/token", options)
83
83
  new_access_token, new_expires_in, new_refresh_token = CreateSend::CreateSend.refresh_access_token refresh_token
84
84
 
85
- FakeWeb.last_request.body.should == "grant_type=refresh_token&refresh_token=#{CGI.escape(refresh_token)}"
85
+ FakeWeb.last_request.body.should == "grant_type=refresh_token&refresh_token=#{ERB::Util.url_encode(refresh_token)}"
86
86
  new_access_token.should == "SlAV32hkKG2e12e"
87
87
  new_expires_in.should == 1209600
88
88
  new_refresh_token.should == "tGzv3JOkF0XG5Qx2TlKWIA"
@@ -97,7 +97,7 @@ class CreateSendTest < Test::Unit::TestCase
97
97
  lambda { access_token, expires_in, refresh_token = CreateSend::CreateSend.refresh_access_token(
98
98
  refresh_token) }.should raise_error(
99
99
  Exception, 'Error refreshing access token: invalid_grant - Specified refresh_token was invalid or expired')
100
- FakeWeb.last_request.body.should == "grant_type=refresh_token&refresh_token=#{CGI.escape(refresh_token)}"
100
+ FakeWeb.last_request.body.should == "grant_type=refresh_token&refresh_token=#{ERB::Util.url_encode(refresh_token)}"
101
101
  end
102
102
 
103
103
  end
@@ -120,7 +120,7 @@ class CreateSendTest < Test::Unit::TestCase
120
120
  cs = CreateSend::CreateSend.new @auth
121
121
  new_access_token, new_expires_in, new_refresh_token = cs.refresh_token
122
122
 
123
- FakeWeb.last_request.body.should == "grant_type=refresh_token&refresh_token=#{CGI.escape(@auth[:refresh_token])}"
123
+ FakeWeb.last_request.body.should == "grant_type=refresh_token&refresh_token=#{ERB::Util.url_encode(@auth[:refresh_token])}"
124
124
  new_access_token.should == "SlAV32hkKG2e12e"
125
125
  new_expires_in.should == 1209600
126
126
  new_refresh_token.should == "tGzv3JOkF0XG5Qx2TlKWIA"
@@ -246,7 +246,7 @@ class CreateSendTest < Test::Unit::TestCase
246
246
 
247
247
  should "set primary contact" do
248
248
  email = 'admin@blackhole.com'
249
- stub_put(@auth, "primarycontact.json?email=#{CGI.escape(email)}", 'admin_set_primary_contact.json')
249
+ stub_put(@auth, "primarycontact.json?email=#{ERB::Util.url_encode(email)}", 'admin_set_primary_contact.json')
250
250
  result = @cs.set_primary_contact email
251
251
  result.EmailAddress.should == email
252
252
  end
@@ -4,6 +4,7 @@
4
4
  "EmailAddress": "subs+7t8787Y@example.com",
5
5
  "Name": "Person One",
6
6
  "Date": "2010-10-25 10:28:00",
7
+ "ListJoinedDate": "2010-10-25 10:28:00",
7
8
  "State": "Active",
8
9
  "CustomFields": [
9
10
  {
@@ -33,6 +34,7 @@
33
34
  "EmailAddress": "subs+7878787y8ggg@example.com",
34
35
  "Name": "Person Two",
35
36
  "Date": "2010-10-25 12:17:00",
37
+ "ListJoinedDate": "2010-10-25 12:17:00",
36
38
  "State": "Active",
37
39
  "CustomFields": [
38
40
  {
@@ -46,6 +48,7 @@
46
48
  "EmailAddress": "subs+7890909i0ggg@example.com",
47
49
  "Name": "Person Three",
48
50
  "Date": "2010-10-25 12:52:00",
51
+ "ListJoinedDate": "2010-10-25 12:52:00",
49
52
  "State": "Active",
50
53
  "CustomFields": [
51
54
  {
@@ -59,6 +62,7 @@
59
62
  "EmailAddress": "subs@example.com",
60
63
  "Name": "Person Four",
61
64
  "Date": "2010-10-27 13:13:00",
65
+ "ListJoinedDate": "2010-10-27 13:13:00",
62
66
  "State": "Active",
63
67
  "CustomFields": [],
64
68
  "ReadsEmailWith": ""
@@ -67,6 +71,7 @@
67
71
  "EmailAddress": "joey@example.com",
68
72
  "Name": "Person Five",
69
73
  "Date": "2010-10-27 13:13:00",
74
+ "ListJoinedDate": "2010-10-27 13:13:00",
70
75
  "State": "Active",
71
76
  "CustomFields": [],
72
77
  "ReadsEmailWith": "Gmail"
@@ -4,6 +4,7 @@
4
4
  "EmailAddress": "bouncedsubscriber@example.com",
5
5
  "Name": "Bounced One",
6
6
  "Date": "2010-10-25 13:11:00",
7
+ "ListJoinedDate": "2010-10-25 13:11:00",
7
8
  "State": "Bounced",
8
9
  "CustomFields": [],
9
10
  "ReadsEmailWith": ""
@@ -11,5 +11,6 @@
11
11
  "WebVersionURL": "http://createsend.com/t/r-3A433FC72FFE3B8B",
12
12
  "WebVersionTextURL": "http://createsend.com/t/r-3A433FC72FFE3B8B/t",
13
13
  "WorldviewURL": "http://client.createsend.com/reports/wv/r/3A433FC72FFE3B8B",
14
- "SpamComplaints": 23
14
+ "SpamComplaints": 23,
15
+ "Name": "Campaign Name"
15
16
  }
@@ -1,26 +1,37 @@
1
- [
2
- {
3
- "WebVersionURL": "http://createsend.com/t/r-765E86829575EE2C",
4
- "WebVersionTextURL": "http://createsend.com/t/r-765E86829575EE2C/t",
5
- "CampaignID": "fc0ce7105baeaf97f47c99be31d02a91",
6
- "Subject": "Campaign One",
7
- "Name": "Campaign One",
8
- "FromName": "My Name",
9
- "FromEmail": "myemail@example.com",
10
- "ReplyTo": "myemail@example.com",
11
- "SentDate": "2010-10-12 12:58:00",
12
- "TotalRecipients": 2245
13
- },
14
- {
15
- "WebVersionURL": "http://createsend.com/t/r-DD543566A87C9B8B",
16
- "WebVersionTextURL": "http://createsend.com/t/r-DD543566A87C9B8B/t",
17
- "CampaignID": "072472b88c853ae5dedaeaf549a8d607",
18
- "Subject": "Campaign Two",
19
- "Name": "Campaign Two",
20
- "FromName": "My Name",
21
- "FromEmail": "myemail@example.com",
22
- "ReplyTo": "myemail@example.com",
23
- "SentDate": "2010-10-06 16:20:00",
24
- "TotalRecipients": 11222
25
- }
26
- ]
1
+ {
2
+ "Results": [
3
+ {
4
+ "WebVersionURL": "http://createsend.com/t/r-765E86829575EE2C",
5
+ "WebVersionTextURL": "http://createsend.com/t/r-765E86829575EE2C/t",
6
+ "CampaignID": "fc0ce7105baeaf97f47c99be31d02a91",
7
+ "Subject": "Campaign One",
8
+ "Name": "Campaign One",
9
+ "FromName": "My Name",
10
+ "FromEmail": "myemail@example.com",
11
+ "ReplyTo": "myemail@example.com",
12
+ "SentDate": "2010-10-12 12:58:00",
13
+ "TotalRecipients": 2245,
14
+ "Tags": []
15
+ },
16
+ {
17
+ "WebVersionURL": "http://createsend.com/t/r-DD543566A87C9B8B",
18
+ "WebVersionTextURL": "http://createsend.com/t/r-DD543566A87C9B8B/t",
19
+ "CampaignID": "072472b88c853ae5dedaeaf549a8d607",
20
+ "Subject": "Campaign Two",
21
+ "Name": "Campaign Two",
22
+ "FromName": "My Name",
23
+ "FromEmail": "myemail@example.com",
24
+ "ReplyTo": "myemail@example.com",
25
+ "SentDate": "2010-10-06 16:20:00",
26
+ "TotalRecipients": 11222,
27
+ "Tags": ["tagexample"]
28
+ }
29
+ ],
30
+ "ResultsOrderedBy": "sentdate",
31
+ "OrderDirection": "desc",
32
+ "PageNumber": 1,
33
+ "PageSize": 1000,
34
+ "RecordsOnThisPage": 2,
35
+ "TotalNumberOfRecords": 2,
36
+ "NumberOfPages": 1
37
+ }
@@ -4,6 +4,7 @@
4
4
  "EmailAddress": "subscriber@example.com",
5
5
  "Name": "Deleted One",
6
6
  "Date": "2010-10-25 13:11:00",
7
+ "ListJoinedDate": "2010-10-25 13:11:00",
7
8
  "State": "Deleted",
8
9
  "CustomFields": [],
9
10
  "ReadsEmailWith": "Gmail"
@@ -12,6 +13,7 @@
12
13
  "EmailAddress": "subscriberone@example.com",
13
14
  "Name": "Subscriber",
14
15
  "Date": "2010-10-25 13:04:00",
16
+ "ListJoinedDate": "2010-10-25 13:04:00",
15
17
  "State": "Deleted",
16
18
  "CustomFields": [
17
19
  {
@@ -25,6 +27,7 @@
25
27
  "EmailAddress": "example+1@example.com",
26
28
  "Name": "Example One",
27
29
  "Date": "2010-10-26 10:56:00",
30
+ "ListJoinedDate": "2010-10-26 10:56:00",
28
31
  "State": "Deleted",
29
32
  "CustomFields": [],
30
33
  "ReadsEmailWith": ""
@@ -33,6 +36,7 @@
33
36
  "EmailAddress": "example+2@example.com",
34
37
  "Name": "Example Two",
35
38
  "Date": "2010-10-26 10:56:00",
39
+ "ListJoinedDate": "2010-10-26 10:56:00",
36
40
  "State": "Deleted",
37
41
  "CustomFields": [],
38
42
  "ReadsEmailWith": ""
@@ -41,6 +45,7 @@
41
45
  "EmailAddress": "example+3@example.com",
42
46
  "Name": "Example Three",
43
47
  "Date": "2010-10-26 10:56:00",
48
+ "ListJoinedDate": "2010-10-26 10:56:00",
44
49
  "State": "Deleted",
45
50
  "CustomFields": [],
46
51
  "ReadsEmailWith": "Gmail"
@@ -8,7 +8,8 @@
8
8
  "ReplyTo": "myemail@example.com",
9
9
  "DateCreated": "2010-08-19 16:08:00",
10
10
  "PreviewURL": "http://createsend.com/t/r-E97A7BB2E6983DA1",
11
- "PreviewTextURL": "http://createsend.com/t/r-E97A7BB2E6983DA1/t"
11
+ "PreviewTextURL": "http://createsend.com/t/r-E97A7BB2E6983DA1/t",
12
+ "Tags": ["tagexample"]
12
13
  },
13
14
  {
14
15
  "CampaignID": "2e928e982065d92627139208c8c01db1",
@@ -19,6 +20,7 @@
19
20
  "ReplyTo": "myemail@example.com",
20
21
  "DateCreated": "2010-08-19 16:08:00",
21
22
  "PreviewURL": "http://createsend.com/t/r-E97A7BB2E6983DA1",
22
- "PreviewTextURL": "http://createsend.com/t/r-E97A7BB2E6983DA1/t"
23
+ "PreviewTextURL": "http://createsend.com/t/r-E97A7BB2E6983DA1/t",
24
+ "Tags": []
23
25
  }
24
26
  ]
@@ -0,0 +1,35 @@
1
+ {
2
+ "Results": [
3
+ {
4
+ "EmailAddress": "example+1@example.com",
5
+ "BounceType": "4",
6
+ "Date": "2019-07-29 10:33:00",
7
+ "Reason": "Soft Bounce - Mailbox Full"
8
+ },
9
+ {
10
+ "EmailAddress": "example+2@example.com",
11
+ "BounceType": "1",
12
+ "Date": "2019-07-29 10:35:00",
13
+ "Reason": "Hard Bounce"
14
+ },
15
+ {
16
+ "EmailAddress": "example+3@example.com",
17
+ "BounceType": "1",
18
+ "Date": "2019-07-29 10:35:00",
19
+ "Reason": "Hard Bounce"
20
+ },
21
+ {
22
+ "EmailAddress": "example+4@example.com",
23
+ "BounceType": "1",
24
+ "Date": "2019-07-29 10:35:00",
25
+ "Reason": "Hard Bounce"
26
+ }
27
+ ],
28
+ "ResultsOrderedBy": "Date",
29
+ "OrderDirection": "ASC",
30
+ "PageNumber": 1,
31
+ "PageSize": 1000,
32
+ "RecordsOnThisPage": 4,
33
+ "TotalNumberOfRecords": 4,
34
+ "NumberOfPages": 1
35
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "Results": [
3
+ {
4
+ "EmailAddress": "example+1@example.com",
5
+ "Date": "2019-07-29 10:33:00",
6
+ "URL": "http://test.com",
7
+ "IPAddress": "192.168.0.3",
8
+ "Latitude": -33.8683,
9
+ "Longitude": 151.2086,
10
+ "City": "Sydney",
11
+ "Region": "New South Wales",
12
+ "CountryCode": "AU",
13
+ "CountryName": "Australia"
14
+ },
15
+ {
16
+ "EmailAddress": "example+2@example.com",
17
+ "Date": "2019-07-29 10:35:00",
18
+ "URL": "http://test.com",
19
+ "IPAddress": "192.168.0.3",
20
+ "Latitude": -33.8683,
21
+ "Longitude": 151.2086,
22
+ "City": "Sydney",
23
+ "Region": "New South Wales",
24
+ "CountryCode": "AU",
25
+ "CountryName": "Australia"
26
+ }
27
+ ],
28
+ "ResultsOrderedBy": "Date",
29
+ "OrderDirection": "ASC",
30
+ "PageNumber": 1,
31
+ "PageSize": 2,
32
+ "RecordsOnThisPage": 2,
33
+ "TotalNumberOfRecords": 5,
34
+ "NumberOfPages": 3
35
+ }