createsend 5.1.1 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a9e3ed5e50f1be54bdb680b399675fef8e72fc1e09d41264ec35d85de005b0ea
4
- data.tar.gz: 1b39dc69dcb31589101712316897771aa15ba48c8ddd5c6bd6255c2352337db3
3
+ metadata.gz: 1b2bb4cff071610599c8016946954e43a06069153feacda42c1ed0ec3f358e06
4
+ data.tar.gz: f3a2e2b67d20cc392b04b469a15b6d97ee1a7af65b9e5245a4d262047863164d
5
5
  SHA512:
6
- metadata.gz: c9d44f747b5d4e64692686c47a0ca56f13d55fe97a0674cfc20659e05b8a518df3ac45f33ab8b575945b1ac9dd69fa503c0884cfb74abdbc3c0f306a0642f7a7
7
- data.tar.gz: 68987336af46b08f9693bf65a1a6fc29af99ee81a044b1468b7a410084191a2e6973595ba1db86406be7c0c7cdace14a968e46e1f83754950bf3ef3a4c5e76a2
6
+ metadata.gz: 229d9c032d55f82c23fed36742e5186eb7e2e4c590e5b8acf9f9463aba53241b41ba31dd5be1ca342556876f0b5f1b69c52a54bff8b161c4018b1611e2145baa
7
+ data.tar.gz: 945dc9bc23760e17d1f4a47e155d3cb356e7539e61e0109f3c0324375cc2f05d2bc1224cfcdb382dfa745a2d667a2ead5b8897962de3e0f7504196baf92e065e
data/HISTORY.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # createsend-ruby history
2
2
 
3
+ ## v6.0.0 - 10 Feb, 2022
4
+ * Upgrades to Createsend API v3.3 which includes new breaking changes
5
+ * Breaking: 'client.campaigns' now returned an object to support pagination (use .Results to ge the array of campaigns)
6
+ * Added 'Tags' as another field that is returned in 'client.scheduled', 'client.drafts' and 'client.campaigns'
7
+ * Added 'Name' as another field that is returned in 'campaign.summary'
8
+ * Add new support for 'client.tags' endpoint (ie: getting list of tags for the client)
9
+ * Add support for pagination, filtering and sorting to 'client.campaigns' endpoint
10
+ * Bump `rake` to `~> 12.3.3`
11
+ * Adding support for returning ListJoinedDate for each subscriber.
12
+ * List.Active()
13
+ * List.Bounced()
14
+ * List.Unsubscribed()
15
+ * List.Unconfirmed()
16
+ * List.Deleted()
17
+ * Segment.Subscribers()
18
+ * Subscriber.Get()
19
+
3
20
  ## v5.1.1 - 8 Oct, 2021
4
21
  * increased default timeout for HTTP requests to 120secs
5
22
 
data/README.md CHANGED
@@ -133,7 +133,7 @@ clients.each do |cl|
133
133
  p "Client: #{cl.Name}"
134
134
  client = CreateSend::Client.new auth, cl.ClientID
135
135
  p "- Campaigns:"
136
- client.campaigns.each do |cm|
136
+ client.drafts.each do |cm|
137
137
  p " - #{cm.Subject}"
138
138
  end
139
139
  end
data/createsend.gemspec CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |s|
7
7
  s.add_runtime_dependency 'json', '>= 1.0'
8
8
  s.add_runtime_dependency 'hashie', '~> 3.0'
9
9
  s.add_runtime_dependency 'httparty', '~> 0.14'
10
- s.add_development_dependency 'rake', '~> 10.0'
10
+ s.add_development_dependency 'rake', '~> 12.3.3'
11
11
  s.add_development_dependency 'fakeweb', '~> 1.3'
12
12
  s.add_development_dependency 'jnunemaker-matchy', '~> 0.4'
13
13
  s.add_development_dependency 'shoulda-context', '~> 1.2'
@@ -25,9 +25,19 @@ module CreateSend
25
25
  end
26
26
 
27
27
  # Gets the sent campaigns belonging to this client.
28
- def campaigns
29
- response = get 'campaigns'
30
- response.map{|item| Hashie::Mash.new(item)}
28
+ def campaigns(page=1, page_size=1000, order_direction="desc",
29
+ sent_from_date='', sent_to_date='', tags='')
30
+ options = { :query => {
31
+ :page => page,
32
+ :pagesize => page_size,
33
+ :orderdirection => order_direction,
34
+ :sentfromdate => sent_from_date,
35
+ :senttodate => sent_to_date,
36
+ :tags => tags
37
+ }}
38
+
39
+ response = get 'campaigns', options
40
+ Hashie::Mash.new(response)
31
41
  end
32
42
 
33
43
  # Gets the currently scheduled campaigns belonging to this client.
@@ -42,6 +52,12 @@ module CreateSend
42
52
  response.map{|item| Hashie::Mash.new(item)}
43
53
  end
44
54
 
55
+ # Gets all the tags belonging to this client.
56
+ def tags
57
+ response = get 'tags'
58
+ response.map{|item| Hashie::Mash.new(item)}
59
+ end
60
+
45
61
  # Gets the subscriber lists belonging to this client.
46
62
  def lists
47
63
  response = get 'lists'
@@ -111,7 +111,7 @@ module CreateSend
111
111
  end
112
112
  end
113
113
 
114
- @@base_uri = "https://api.createsend.com/api/v3.2"
114
+ @@base_uri = "https://api.createsend.com/api/v3.3"
115
115
  @@oauth_base_uri = "https://api.createsend.com/oauth"
116
116
  @@oauth_token_uri = "#{@@oauth_base_uri}/token"
117
117
  headers({
@@ -1,3 +1,3 @@
1
1
  module CreateSend
2
- VERSION = "5.1.1" unless defined?(CreateSend::VERSION)
2
+ VERSION = "6.0.0" unless defined?(CreateSend::VERSION)
3
3
  end
@@ -0,0 +1,64 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require 'createsend'
3
+
4
+ class AuthorizationSample
5
+ def initialize
6
+ raise 'CREATESEND_API_KEY env var missing' if ENV['CREATESEND_API_KEY'].nil?
7
+ raise 'CREATESEND_CLIENT_ID env var missing' if ENV['CREATESEND_CLIENT_ID'].nil?
8
+ raise 'CREATESEND_OAUTH_CLIENT_ID env var missing' if ENV['CREATESEND_OAUTH_CLIENT_ID'].nil?
9
+ raise 'CREATESEND_OAUTH_CLIENT_SECRET env var missing' if ENV['CREATESEND_OAUTH_CLIENT_SECRET'].nil?
10
+ raise 'CREATESEND_OAUTH_REDIRECT_URL env var missing' if ENV['CREATESEND_OAUTH_REDIRECT_URL'].nil?
11
+ raise 'CREATESEND_OAUTH_SCOPE env var missing' if ENV['CREATESEND_OAUTH_SCOPE'].nil?
12
+
13
+ @createsendApiKey = ENV['CREATESEND_API_KEY']
14
+ @oauthClientId = ENV['CREATESEND_OAUTH_CLIENT_ID']
15
+ @oauthClientSecret = ENV['CREATESEND_OAUTH_CLIENT_SECRET']
16
+ @oauthRedirectUrl = ENV['CREATESEND_OAUTH_REDIRECT_URL']
17
+ @oauthScope = ENV['CREATESEND_OAUTH_SCOPE']
18
+ )
19
+ end
20
+
21
+ def authentication_with_api_key
22
+ auth = {:api_key => @createsendApiKey}
23
+ @client = CreateSend::Client.new auth, @createsendClientId
24
+
25
+ @client.scheduled
26
+ end
27
+
28
+ def get_authorise_url
29
+ state = 'some state data'
30
+
31
+ @authorize_url = CreateSend::CreateSend.authorize_url(@oauthClientId, @oauthRedirectUrl, @oauthScope, state);
32
+ end
33
+
34
+ def exchange_token(code)
35
+ CreateSend::CreateSend.exchange_token(
36
+ client_id=@oauthClientId,
37
+ client_secret=@oauthClientSecret,
38
+ redirect_uri=@oauthRedirectUrl,
39
+ code=code # Get the code from the query string after hitting authorise url
40
+ )
41
+ end
42
+
43
+ def authentication_with_oauth(access_token, refresh_token)
44
+ auth = {:access_token => access_token, :refresh_token => refresh_token}
45
+ @client = CreateSend::Client.new auth, @createsendClientId
46
+
47
+ @client.scheduled
48
+ end
49
+ end
50
+
51
+ sample = AuthorizationSample.new
52
+ authoriseUrl = sample.get_authorise_url
53
+ # hit the authorise url, where you would be redirected and receive the code parameter in the query string
54
+ access_token, expires_in, refresh_token = sample.exchange_token('code that you get once you hit authorize url')
55
+
56
+ puts "Getting scheduled campaigns with api authentication: #{sample.authentication_with_api_key.to_json}\n\n"
57
+ puts "Getting authorise url: #{authoriseUrl.to_json}\n\n"
58
+ puts "Getting access_token: #{access_token.to_json}\n\n"
59
+ puts "Getting scheduled campaigns with oauth authentication: #{sample.authentication_with_oauth(access_token, refresh_token).to_json}\n\n"
60
+
61
+
62
+ @client.scheduled
63
+ end
64
+ end
@@ -0,0 +1,79 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require 'createsend'
3
+
4
+ class ClientsSample
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_CLIENT_ID env var missing' if ENV['CREATESEND_CLIENT_ID'].nil?
9
+
10
+ auth = auth = {:access_token => ENV['CREATESEND_ACCESS_TOKEN'], :refresh_token => ENV['CREATESEND_REFRESH_TOKEN']}
11
+ @client = CreateSend::Client.new auth, ENV['CREATESEND_CLIENT_ID']
12
+ end
13
+
14
+ def get_all_sent_campaigns
15
+ campaigns = []
16
+ page_number = 1
17
+ loop do
18
+ page = @client.campaigns(page_number)
19
+ page_number += 1
20
+ campaigns.concat(page.Results)
21
+ if page.PageNumber == page.NumberOfPages
22
+ break
23
+ end
24
+ end
25
+
26
+ campaigns
27
+ end
28
+
29
+ def get_sent_campaigns_with_tag_filter
30
+ filtered_campaigns = []
31
+ page_number = 1
32
+ loop do
33
+ page = @client.campaigns(page_number, 1000, 'desc', '', '', 'tag_example, tag_example_2')
34
+ page_number += 1
35
+ filtered_campaigns.concat(page.Results)
36
+ if page.PageNumber == page.NumberOfPages
37
+ break
38
+ end
39
+ end
40
+
41
+ filtered_campaigns
42
+ end
43
+
44
+ def get_2021_sent_campaigns
45
+ 2021_campaigns = []
46
+ page_number = 1
47
+ loop do
48
+ page = @client.campaigns(1, 1000, 'desc', '2021-01-01', '2022-01-01', '')
49
+ page_number += 1
50
+ 2021_campaigns.concat(page.Results)
51
+ if page.PageNumber == page.NumberOfPages
52
+ break
53
+ end
54
+ end
55
+
56
+ 2021_campaigns
57
+ end
58
+
59
+ def get_all_scheduled_campaigns
60
+ @client.scheduled
61
+ end
62
+
63
+ def get_all_draft_campaigns
64
+ @client.drafts
65
+ end
66
+
67
+ def get_all_client_tags
68
+ @client.tags
69
+ end
70
+ end
71
+
72
+ sample = ClientsSample.new
73
+
74
+ puts "All sent campaigns: #{sample.get_all_sent_campaigns.to_json}\n\n"
75
+ puts "All sent campaigns with `tag_example` and `tag_example_2` tag: #{sample.get_sent_campaigns_with_tag_filter.to_json}\n\n"
76
+ puts "All 2021 sent campaigns: #{sample.get_2021_sent_campaigns.to_json}\n\n"
77
+ puts "All scheduled campaigns: #{sample.get_all_scheduled_campaigns.to_json}\n\n"
78
+ puts "All draft campaigns: #{sample.get_all_draft_campaigns.to_json}\n\n"
79
+ puts "All client tags: #{sample.get_all_client_tags.to_json}\n\n"
@@ -5,12 +5,13 @@ class JourneySample
5
5
  @date = "2019-01-01 00:00"
6
6
 
7
7
  def initialize
8
- raise 'CREATESEND_API_KEY env var missing' if ENV['CREATESEND_API_KEY'].nil?
8
+ raise 'CREATESEND_ACCESS_TOKEN env var missing' if ENV['CREATESEND_ACCESS_TOKEN'].nil?
9
+ raise 'CREATESEND_REFRESH_TOKEN env var missing' if ENV['CREATESEND_REFRESH_TOKEN'].nil?
9
10
  raise 'CREATESEND_CLIENT_ID env var missing' if ENV['CREATESEND_CLIENT_ID'].nil?
10
11
  raise 'CREATESEND_JOURNEY_ID env var missing' if ENV['CREATESEND_JOURNEY_ID'].nil?
11
12
  raise 'CREATESEND_EMAIL_ID env var missing' if ENV['CREATESEND_EMAIL_ID'].nil?
12
13
 
13
- auth = {:api_key => ENV['CREATESEND_API_KEY']}
14
+ auth = {:access_token => ENV['CREATESEND_ACCESS_TOKEN'], :refresh_token => ENV['CREATESEND_REFRESH_TOKEN']}
14
15
  @client = CreateSend::Client.new auth, ENV['CREATESEND_CLIENT_ID']
15
16
  @journey = CreateSend::Journey.new auth, ENV['CREATESEND_JOURNEY_ID']
16
17
  end
@@ -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"
@@ -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
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
@@ -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
  ]
@@ -10,7 +10,8 @@
10
10
  "ReplyTo": "myemail@example.com",
11
11
  "DateCreated": "2011-05-24 10:37:00",
12
12
  "PreviewURL": "http://createsend.com/t/r-DD543521A87C9B8B",
13
- "PreviewTextURL": "http://createsend.com/t/r-DD543521A87C9B8B/t"
13
+ "PreviewTextURL": "http://createsend.com/t/r-DD543521A87C9B8B/t",
14
+ "Tags": ["tagexample"]
14
15
  },
15
16
  {
16
17
  "DateScheduled": "2011-05-29 11:20:00",
@@ -23,6 +24,7 @@
23
24
  "ReplyTo": "myemail@example.com",
24
25
  "DateCreated": "2011-05-24 10:39:00",
25
26
  "PreviewURL": "http://createsend.com/t/r-DD913521A87C9B8B",
26
- "PreviewTextURL": "http://createsend.com/t/r-DD913521A87C9B8B/t"
27
+ "PreviewTextURL": "http://createsend.com/t/r-DD913521A87C9B8B/t",
28
+ "Tags": []
27
29
  }
28
30
  ]
@@ -4,6 +4,7 @@
4
4
  "EmailAddress": "personone@example.com",
5
5
  "Name": "Person One",
6
6
  "Date": "2010-10-27 13:13:00",
7
+ "ListJoinedDate": "2010-10-27 13:13:00",
7
8
  "State": "Active",
8
9
  "CustomFields": []
9
10
  },
@@ -11,6 +12,7 @@
11
12
  "EmailAddress": "persontwo@example.com",
12
13
  "Name": "Person Two",
13
14
  "Date": "2010-10-27 13:13:00",
15
+ "ListJoinedDate": "2010-10-27 13:13:00",
14
16
  "State": "Active",
15
17
  "CustomFields": []
16
18
  }
@@ -2,6 +2,7 @@
2
2
  "EmailAddress": "subscriber@example.com",
3
3
  "Name": "Subscriber One",
4
4
  "Date": "2010-10-25 10:28:00",
5
+ "ListJoinedDate": "2010-10-25 10:28:00",
5
6
  "State": "Active",
6
7
  "CustomFields": [
7
8
  {
@@ -2,6 +2,7 @@
2
2
  "EmailAddress": "subscriber@example.com",
3
3
  "Name": "Subscriber One",
4
4
  "Date": "2010-10-25 10:28:00",
5
+ "ListJoinedDate": "2010-10-25 10:28:00",
5
6
  "State": "Active",
6
7
  "CustomFields": [
7
8
  {
@@ -0,0 +1,10 @@
1
+ [
2
+ {
3
+ "Name": "Tag One",
4
+ "NumberOfCampaigns": "120"
5
+ },
6
+ {
7
+ "Name": "Tag Two",
8
+ "NumberOfCampaigns": "62"
9
+ }
10
+ ]
@@ -4,6 +4,7 @@
4
4
  "EmailAddress": "subs+7t8787Y@example.com",
5
5
  "Name": "Unconfirmed One",
6
6
  "Date": "2010-10-25 10:28:00",
7
+ "ListJoinedDate": "2010-10-25 10:28:00",
7
8
  "State": "Unconfirmed",
8
9
  "CustomFields": [
9
10
  {
@@ -18,6 +19,7 @@
18
19
  "EmailAddress": "subs+7878787y8ggg@example.com",
19
20
  "Name": "Unconfirmed Two",
20
21
  "Date": "2010-10-25 12:17:00",
22
+ "ListJoinedDate": "2010-10-25 12:17:00",
21
23
  "State": "Unconfirmed",
22
24
  "CustomFields": [
23
25
  {
@@ -4,6 +4,7 @@
4
4
  "EmailAddress": "subscriber@example.com",
5
5
  "Name": "Unsub One",
6
6
  "Date": "2010-10-25 13:11:00",
7
+ "ListJoinedDate": "2010-10-25 13:11:00",
7
8
  "State": "Unsubscribed",
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": "Unsubscribed",
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": "Unsubscribed",
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": "Unsubscribed",
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": "Unsubscribed",
45
50
  "CustomFields": [],
46
51
  "ReadsEmailWith": "Gmail"
@@ -53,4 +58,4 @@
53
58
  "RecordsOnThisPage": 5,
54
59
  "TotalNumberOfRecords": 5,
55
60
  "NumberOfPages": 1
56
- }
61
+ }
data/test/helper.rb CHANGED
@@ -30,7 +30,7 @@ def createsend_url(auth, url)
30
30
  if not url =~ /^http/
31
31
  auth_section = ''
32
32
  auth_section = "#{auth[:api_key]}:x@" if auth and auth.has_key? :api_key
33
- result = "https://#{auth_section}api.createsend.com/api/v3.2/#{url}"
33
+ result = "https://#{auth_section}api.createsend.com/api/v3.3/#{url}"
34
34
  else
35
35
  result = url
36
36
  end
data/test/list_test.rb CHANGED
@@ -143,6 +143,7 @@ class ListTest < Test::Unit::TestCase
143
143
  res.Results.first.EmailAddress.should == "subs+7t8787Y@example.com"
144
144
  res.Results.first.Name.should =="Person One"
145
145
  res.Results.first.Date.should == "2010-10-25 10:28:00"
146
+ res.Results.first.ListJoinedDate.should == "2010-10-25 10:28:00"
146
147
  res.Results.first.State.should == "Active"
147
148
  res.Results.first.CustomFields.size.should == 5
148
149
  res.Results.first.CustomFields[0].Key.should == "website"
@@ -169,6 +170,8 @@ class ListTest < Test::Unit::TestCase
169
170
  res.Results.size.should == 2
170
171
  res.Results.first.EmailAddress.should == "subs+7t8787Y@example.com"
171
172
  res.Results.first.Name.should =="Unconfirmed One"
173
+ res.Results.first.Date.should =="2010-10-25 10:28:00"
174
+ res.Results.first.ListJoinedDate.should =="2010-10-25 10:28:00"
172
175
  res.Results.first.State.should == "Unconfirmed"
173
176
  res.Results.first.ConsentToTrack.should == "Yes"
174
177
  end
@@ -189,6 +192,7 @@ class ListTest < Test::Unit::TestCase
189
192
  res.Results.first.EmailAddress.should == "subscriber@example.com"
190
193
  res.Results.first.Name.should == "Unsub One"
191
194
  res.Results.first.Date.should == "2010-10-25 13:11:00"
195
+ res.Results.first.ListJoinedDate.should == "2010-10-25 13:11:00"
192
196
  res.Results.first.State.should == "Unsubscribed"
193
197
  res.Results.first.CustomFields.size.should == 0
194
198
  res.Results.first.ReadsEmailWith.should == "Gmail"
@@ -210,6 +214,7 @@ class ListTest < Test::Unit::TestCase
210
214
  res.Results.first.EmailAddress.should == "subscriber@example.com"
211
215
  res.Results.first.Name.should == "Deleted One"
212
216
  res.Results.first.Date.should == "2010-10-25 13:11:00"
217
+ res.Results.first.ListJoinedDate.should == "2010-10-25 13:11:00"
213
218
  res.Results.first.State.should == "Deleted"
214
219
  res.Results.first.CustomFields.size.should == 0
215
220
  res.Results.first.ReadsEmailWith.should == "Gmail"
@@ -231,6 +236,7 @@ class ListTest < Test::Unit::TestCase
231
236
  res.Results.first.EmailAddress.should == "bouncedsubscriber@example.com"
232
237
  res.Results.first.Name.should == "Bounced One"
233
238
  res.Results.first.Date.should == "2010-10-25 13:11:00"
239
+ res.Results.first.ListJoinedDate.should == "2010-10-25 13:11:00"
234
240
  res.Results.first.State.should == "Bounced"
235
241
  res.Results.first.CustomFields.size.should == 0
236
242
  res.Results.first.ReadsEmailWith.should == ""
data/test/segment_test.rb CHANGED
@@ -42,6 +42,7 @@ class SegmentTest < Test::Unit::TestCase
42
42
  res.Results.first.EmailAddress.should == "personone@example.com"
43
43
  res.Results.first.Name.should == "Person One"
44
44
  res.Results.first.Date.should == "2010-10-27 13:13:00"
45
+ res.Results.first.ListJoinedDate.should == "2010-10-27 13:13:00"
45
46
  res.Results.first.State.should == "Active"
46
47
  res.Results.first.CustomFields.should == []
47
48
  end
@@ -14,6 +14,7 @@ class SubscriberTest < Test::Unit::TestCase
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'
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: 5.1.1
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: 2021-10-08 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
@@ -184,7 +184,12 @@ files:
184
184
  - lib/createsend/transactional_smart_email.rb
185
185
  - lib/createsend/transactional_timeline.rb
186
186
  - lib/createsend/version.rb
187
+ - samples/authentication_sample.rb
188
+ - samples/clients_sample.rb
187
189
  - samples/journey_sample.rb
190
+ - samples/lists_sample.rb
191
+ - samples/segments_sample.rb
192
+ - samples/subscribes_sample.rb
188
193
  - test/administrator_test.rb
189
194
  - test/campaign_test.rb
190
195
  - test/client_test.rb
@@ -258,6 +263,7 @@ files:
258
263
  - test/fixtures/subscriber_history.json
259
264
  - test/fixtures/suppressionlist.json
260
265
  - test/fixtures/systemdate.json
266
+ - test/fixtures/tags.json
261
267
  - test/fixtures/template_details.json
262
268
  - test/fixtures/templates.json
263
269
  - test/fixtures/timezones.json
@@ -292,7 +298,7 @@ homepage: http://campaignmonitor.github.io/createsend-ruby/
292
298
  licenses:
293
299
  - MIT
294
300
  metadata: {}
295
- post_install_message:
301
+ post_install_message:
296
302
  rdoc_options: []
297
303
  require_paths:
298
304
  - lib
@@ -307,112 +313,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
307
313
  - !ruby/object:Gem::Version
308
314
  version: 1.3.6
309
315
  requirements: []
310
- rubygems_version: 3.0.3
311
- signing_key:
316
+ rubygems_version: 3.3.3
317
+ signing_key:
312
318
  specification_version: 4
313
319
  summary: A library which implements the complete functionality of the Campaign Monitor
314
320
  API.
315
- test_files:
316
- - test/administrator_test.rb
317
- - test/campaign_test.rb
318
- - test/client_test.rb
319
- - test/createsend_test.rb
320
- - test/fixtures/active_subscribers.json
321
- - test/fixtures/add_admin.json
322
- - test/fixtures/add_person.json
323
- - test/fixtures/add_subscriber.json
324
- - test/fixtures/admin_details.json
325
- - test/fixtures/admin_get_primary_contact.json
326
- - test/fixtures/admin_set_primary_contact.json
327
- - test/fixtures/administrators.json
328
- - test/fixtures/billingdetails.json
329
- - test/fixtures/bounced_subscribers.json
330
- - test/fixtures/campaign_bounces.json
331
- - test/fixtures/campaign_clicks.json
332
- - test/fixtures/campaign_listsandsegments.json
333
- - test/fixtures/campaign_opens.json
334
- - test/fixtures/campaign_recipients.json
335
- - test/fixtures/campaign_spam.json
336
- - test/fixtures/campaign_summary.json
337
- - test/fixtures/campaign_unsubscribes.json
338
- - test/fixtures/campaigns.json
339
- - test/fixtures/client_details.json
340
- - test/fixtures/client_get_primary_contact.json
341
- - test/fixtures/client_set_primary_contact.json
342
- - test/fixtures/clients.json
343
- - test/fixtures/countries.json
344
- - test/fixtures/create_campaign.json
345
- - test/fixtures/create_client.json
346
- - test/fixtures/create_custom_field.json
347
- - test/fixtures/create_list.json
348
- - test/fixtures/create_list_webhook.json
349
- - test/fixtures/create_segment.json
350
- - test/fixtures/create_template.json
351
- - test/fixtures/custom_api_error.json
352
- - test/fixtures/custom_fields.json
353
- - test/fixtures/deleted_subscribers.json
354
- - test/fixtures/drafts.json
355
- - test/fixtures/email_client_usage.json
356
- - test/fixtures/expired_oauth_token_api_error.json
357
- - test/fixtures/external_session.json
358
- - test/fixtures/import_subscribers.json
359
- - test/fixtures/import_subscribers_partial_success.json
360
- - test/fixtures/invalid_oauth_token_api_error.json
361
- - test/fixtures/journey_bounces.json
362
- - test/fixtures/journey_clicks.json
363
- - test/fixtures/journey_opens.json
364
- - test/fixtures/journey_recipients.json
365
- - test/fixtures/journey_summary.json
366
- - test/fixtures/journey_unsubscribes.json
367
- - test/fixtures/journeys.json
368
- - test/fixtures/list_details.json
369
- - test/fixtures/list_stats.json
370
- - test/fixtures/list_webhooks.json
371
- - test/fixtures/lists.json
372
- - test/fixtures/listsforemail.json
373
- - test/fixtures/oauth_exchange_token.json
374
- - test/fixtures/oauth_exchange_token_error.json
375
- - test/fixtures/oauth_refresh_token_error.json
376
- - test/fixtures/people.json
377
- - test/fixtures/person_details.json
378
- - test/fixtures/refresh_oauth_token.json
379
- - test/fixtures/revoked_oauth_token_api_error.json
380
- - test/fixtures/scheduled_campaigns.json
381
- - test/fixtures/segment_details.json
382
- - test/fixtures/segment_subscribers.json
383
- - test/fixtures/segments.json
384
- - test/fixtures/subscriber_details.json
385
- - test/fixtures/subscriber_details_with_track_pref.json
386
- - test/fixtures/subscriber_history.json
387
- - test/fixtures/suppressionlist.json
388
- - test/fixtures/systemdate.json
389
- - test/fixtures/template_details.json
390
- - test/fixtures/templates.json
391
- - test/fixtures/timezones.json
392
- - test/fixtures/transfer_credits.json
393
- - test/fixtures/tx_classicemail_groups.json
394
- - test/fixtures/tx_message_details.json
395
- - test/fixtures/tx_message_details_with_statistics.json
396
- - test/fixtures/tx_messages.json
397
- - test/fixtures/tx_messages_classic.json
398
- - test/fixtures/tx_messages_smart.json
399
- - test/fixtures/tx_resend_message.json
400
- - test/fixtures/tx_send_multiple.json
401
- - test/fixtures/tx_send_single.json
402
- - test/fixtures/tx_smartemail_details.json
403
- - test/fixtures/tx_smartemails.json
404
- - test/fixtures/tx_statistics_classic.json
405
- - test/fixtures/tx_statistics_smart.json
406
- - test/fixtures/unconfirmed_subscribers.json
407
- - test/fixtures/unsubscribed_subscribers.json
408
- - test/fixtures/update_custom_field.json
409
- - test/helper.rb
410
- - test/journey_test.rb
411
- - test/list_test.rb
412
- - test/person_test.rb
413
- - test/segment_test.rb
414
- - test/subscriber_test.rb
415
- - test/template_test.rb
416
- - test/transactional_classic_email_test.rb
417
- - test/transactional_smart_email_test.rb
418
- - test/transactional_timeline_test.rb
321
+ test_files: []