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 +4 -4
- data/HISTORY.md +17 -0
- data/README.md +1 -1
- data/createsend.gemspec +1 -1
- data/lib/createsend/client.rb +19 -3
- data/lib/createsend/createsend.rb +1 -1
- data/lib/createsend/version.rb +1 -1
- data/samples/authentication_sample.rb +64 -0
- data/samples/clients_sample.rb +79 -0
- data/samples/journey_sample.rb +3 -2
- data/samples/lists_sample.rb +41 -0
- data/samples/segments_sample.rb +21 -0
- data/samples/subscribes_sample.rb +22 -0
- data/test/campaign_test.rb +1 -0
- data/test/client_test.rb +55 -32
- data/test/fixtures/active_subscribers.json +5 -0
- data/test/fixtures/bounced_subscribers.json +1 -0
- data/test/fixtures/campaign_summary.json +2 -1
- data/test/fixtures/campaigns.json +37 -26
- data/test/fixtures/deleted_subscribers.json +5 -0
- data/test/fixtures/drafts.json +4 -2
- data/test/fixtures/scheduled_campaigns.json +4 -2
- data/test/fixtures/segment_subscribers.json +2 -0
- data/test/fixtures/subscriber_details.json +1 -0
- data/test/fixtures/subscriber_details_with_track_pref.json +1 -0
- data/test/fixtures/tags.json +10 -0
- data/test/fixtures/unconfirmed_subscribers.json +2 -0
- data/test/fixtures/unsubscribed_subscribers.json +6 -1
- data/test/helper.rb +1 -1
- data/test/list_test.rb +6 -0
- data/test/segment_test.rb +1 -0
- data/test/subscriber_test.rb +1 -0
- metadata +15 -112
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1b2bb4cff071610599c8016946954e43a06069153feacda42c1ed0ec3f358e06
|
4
|
+
data.tar.gz: f3a2e2b67d20cc392b04b469a15b6d97ee1a7af65b9e5245a4d262047863164d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
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
|
+
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'
|
data/lib/createsend/client.rb
CHANGED
@@ -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
|
-
|
30
|
-
|
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.
|
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({
|
data/lib/createsend/version.rb
CHANGED
@@ -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"
|
data/samples/journey_sample.rb
CHANGED
@@ -5,12 +5,13 @@ class JourneySample
|
|
5
5
|
@date = "2019-01-01 00:00"
|
6
6
|
|
7
7
|
def initialize
|
8
|
-
raise '
|
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 = {:
|
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"
|
data/test/campaign_test.rb
CHANGED
@@ -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.
|
33
|
-
campaigns.
|
34
|
-
campaigns.
|
35
|
-
campaigns.
|
36
|
-
campaigns.
|
37
|
-
campaigns.
|
38
|
-
campaigns.
|
39
|
-
|
40
|
-
campaigns.first
|
41
|
-
|
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
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
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
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
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"
|
@@ -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
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
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"
|
data/test/fixtures/drafts.json
CHANGED
@@ -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
|
}
|
@@ -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.
|
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
|
data/test/subscriber_test.rb
CHANGED
@@ -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:
|
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:
|
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:
|
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:
|
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.
|
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: []
|