constantcontact 1.3.2 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +5 -5
- data/constantcontact.gemspec +2 -2
- data/lib/constantcontact/api.rb +223 -307
- data/lib/constantcontact/services/account_service.rb +5 -7
- data/lib/constantcontact/services/activity_service.rb +16 -24
- data/lib/constantcontact/services/base_service.rb +3 -4
- data/lib/constantcontact/services/campaign_schedule_service.rb +12 -18
- data/lib/constantcontact/services/campaign_tracking_service.rb +14 -21
- data/lib/constantcontact/services/contact_service.rb +14 -21
- data/lib/constantcontact/services/contact_tracking_service.rb +14 -21
- data/lib/constantcontact/services/email_marketing_service.rb +10 -15
- data/lib/constantcontact/services/event_spot_service.rb +56 -85
- data/lib/constantcontact/services/library_service.rb +32 -48
- data/lib/constantcontact/services/list_service.rb +10 -15
- data/lib/constantcontact/util/config.rb +5 -3
- data/lib/constantcontact/version.rb +3 -3
- data/spec/constantcontact/api_spec.rb +121 -103
- data/spec/constantcontact/services/account_service_spec.rb +15 -1
- data/spec/constantcontact/services/activity_service_spec.rb +9 -14
- data/spec/constantcontact/services/base_service_spec.rb +2 -1
- data/spec/constantcontact/services/campaign_schedule_service_spec.rb +6 -6
- data/spec/constantcontact/services/campaign_tracking_service_spec.rb +7 -7
- data/spec/constantcontact/services/contact_service_spec.rb +7 -7
- data/spec/constantcontact/services/contact_tracking_service_spec.rb +7 -7
- data/spec/constantcontact/services/email_marketing_spec.rb +5 -5
- data/spec/constantcontact/services/event_spot_spec.rb +27 -27
- data/spec/constantcontact/services/library_service_spec.rb +16 -16
- data/spec/constantcontact/services/list_service_spec.rb +5 -5
- metadata +2 -2
@@ -10,24 +10,22 @@ module ConstantContact
|
|
10
10
|
class << self
|
11
11
|
|
12
12
|
# Get a summary of account information
|
13
|
-
# @
|
14
|
-
|
15
|
-
def get_account_info(access_token)
|
13
|
+
# @return [AccountInfo]
|
14
|
+
def get_account_info()
|
16
15
|
url = Util::Config.get('endpoints.base_url') + Util::Config.get('endpoints.account_info')
|
17
16
|
url = build_url(url)
|
18
|
-
response = RestClient.get(url, get_headers(
|
17
|
+
response = RestClient.get(url, get_headers())
|
19
18
|
Components::AccountInfo.create(JSON.parse(response.body))
|
20
19
|
end
|
21
20
|
|
22
21
|
|
23
22
|
# Get all verified email addresses associated with an account
|
24
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
25
23
|
# @param [Hash] params - hash of query parameters/values to append to the request
|
26
24
|
# @return [Array<VerifiedEmailAddress>]
|
27
|
-
def get_verified_email_addresses(
|
25
|
+
def get_verified_email_addresses(params)
|
28
26
|
url = Util::Config.get('endpoints.base_url') + Util::Config.get('endpoints.account_verified_addresses')
|
29
27
|
url = build_url(url, params)
|
30
|
-
response = RestClient.get(url, get_headers(
|
28
|
+
response = RestClient.get(url, get_headers())
|
31
29
|
email_addresses = []
|
32
30
|
JSON.parse(response.body).each do |email_address|
|
33
31
|
email_addresses << Components::VerifiedEmailAddress.create(email_address)
|
@@ -10,13 +10,12 @@ module ConstantContact
|
|
10
10
|
class << self
|
11
11
|
|
12
12
|
# Get a set of activities
|
13
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
14
13
|
# @param [Hash] params - query parameters to be appended to the url
|
15
14
|
# @return [Array<Activity>]
|
16
|
-
def get_activities(
|
15
|
+
def get_activities(params = {})
|
17
16
|
url = Util::Config.get('endpoints.base_url') + Util::Config.get('endpoints.activities')
|
18
17
|
url = build_url(url, params)
|
19
|
-
response = RestClient.get(url, get_headers(
|
18
|
+
response = RestClient.get(url, get_headers())
|
20
19
|
|
21
20
|
activities = []
|
22
21
|
JSON.parse(response.body).each do |activity|
|
@@ -28,84 +27,78 @@ module ConstantContact
|
|
28
27
|
|
29
28
|
|
30
29
|
# Get an array of activities
|
31
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
32
30
|
# @param [String] activity_id - Activity id
|
33
31
|
# @return [Activity]
|
34
|
-
def get_activity(
|
32
|
+
def get_activity(activity_id)
|
35
33
|
url = Util::Config.get('endpoints.base_url') +
|
36
34
|
sprintf(Util::Config.get('endpoints.activity'), activity_id)
|
37
35
|
url = build_url(url)
|
38
|
-
response = RestClient.get(url, get_headers(
|
36
|
+
response = RestClient.get(url, get_headers())
|
39
37
|
Components::Activity.create(JSON.parse(response.body))
|
40
38
|
end
|
41
39
|
|
42
40
|
|
43
41
|
# Create an Add Contacts Activity
|
44
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
45
42
|
# @param [AddContacts] add_contacts
|
46
43
|
# @return [Activity]
|
47
|
-
def create_add_contacts_activity(
|
44
|
+
def create_add_contacts_activity(add_contacts)
|
48
45
|
url = Util::Config.get('endpoints.base_url') +
|
49
46
|
Util::Config.get('endpoints.add_contacts_activity')
|
50
47
|
url = build_url(url)
|
51
48
|
payload = add_contacts.to_json
|
52
|
-
response = RestClient.post(url, payload, get_headers(
|
49
|
+
response = RestClient.post(url, payload, get_headers())
|
53
50
|
Components::Activity.create(JSON.parse(response.body))
|
54
51
|
end
|
55
52
|
|
56
53
|
|
57
54
|
# Create an Add Contacts Activity from a file. Valid file types are txt, csv, xls, xlsx
|
58
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
59
55
|
# @param [String] file_name - The name of the file (ie: contacts.csv)
|
60
56
|
# @param [String] contents - The content of the file
|
61
57
|
# @param [String] lists - Comma separated list of ContactList id's to add the contacts to
|
62
58
|
# @return [Activity]
|
63
|
-
def create_add_contacts_activity_from_file(
|
59
|
+
def create_add_contacts_activity_from_file(file_name, contents, lists)
|
64
60
|
url = Util::Config.get('endpoints.base_url') +
|
65
61
|
Util::Config.get('endpoints.add_contacts_activity')
|
66
62
|
url = build_url(url)
|
67
63
|
|
68
64
|
payload = { :file_name => file_name, :lists => lists, :data => contents, :multipart => true }
|
69
65
|
|
70
|
-
response = RestClient.post(url, payload, get_headers(
|
66
|
+
response = RestClient.post(url, payload, get_headers())
|
71
67
|
Components::Activity.create(JSON.parse(response.body))
|
72
68
|
end
|
73
69
|
|
74
70
|
|
75
71
|
# Create a Clear Lists Activity
|
76
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
77
72
|
# @param [Array<lists>] lists - array of list id's to be cleared
|
78
73
|
# @return [Activity]
|
79
|
-
def add_clear_lists_activity(
|
74
|
+
def add_clear_lists_activity(lists)
|
80
75
|
url = Util::Config.get('endpoints.base_url') +
|
81
76
|
Util::Config.get('endpoints.clear_lists_activity')
|
82
77
|
url = build_url(url)
|
83
78
|
payload = {'lists' => lists}.to_json
|
84
|
-
response = RestClient.post(url, payload, get_headers(
|
79
|
+
response = RestClient.post(url, payload, get_headers())
|
85
80
|
Components::Activity.create(JSON.parse(response.body))
|
86
81
|
end
|
87
82
|
|
88
83
|
|
89
84
|
# Create an Export Contacts Activity
|
90
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
91
85
|
# @param [ExportContacts] export_contacts
|
92
86
|
# @return [Activity]
|
93
|
-
def add_export_contacts_activity(
|
87
|
+
def add_export_contacts_activity(export_contacts)
|
94
88
|
url = Util::Config.get('endpoints.base_url') +
|
95
89
|
Util::Config.get('endpoints.export_contacts_activity')
|
96
90
|
url = build_url(url)
|
97
91
|
payload = export_contacts.to_json
|
98
|
-
response = RestClient.post(url, payload, get_headers(
|
92
|
+
response = RestClient.post(url, payload, get_headers())
|
99
93
|
Components::Activity.create(JSON.parse(response.body))
|
100
94
|
end
|
101
95
|
|
102
96
|
|
103
97
|
# Create a Remove Contacts From Lists Activity
|
104
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
105
98
|
# @param [<Array>EmailAddress] email_addresses
|
106
99
|
# @param [<Array>RemoveFromLists] lists
|
107
100
|
# @return [Activity]
|
108
|
-
def add_remove_contacts_from_lists_activity(
|
101
|
+
def add_remove_contacts_from_lists_activity(email_addresses, lists)
|
109
102
|
url = Util::Config.get('endpoints.base_url') +
|
110
103
|
Util::Config.get('endpoints.remove_from_lists_activity')
|
111
104
|
url = build_url(url)
|
@@ -116,25 +109,24 @@ module ConstantContact
|
|
116
109
|
end
|
117
110
|
payload = payload.to_json
|
118
111
|
|
119
|
-
response = RestClient.post(url, payload, get_headers(
|
112
|
+
response = RestClient.post(url, payload, get_headers())
|
120
113
|
Components::Activity.create(JSON.parse(response.body))
|
121
114
|
end
|
122
115
|
|
123
116
|
|
124
117
|
# Create an Remove Contacts Activity from a file. Valid file types are txt, csv, xls, xlsx
|
125
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
126
118
|
# @param [String] file_name - The name of the file (ie: contacts.csv)
|
127
119
|
# @param [String] contents - The content of the file
|
128
120
|
# @param [String] lists - Comma separated list of ContactList id' to add the contacts too
|
129
121
|
# @return [Activity]
|
130
|
-
def add_remove_contacts_from_lists_activity_from_file(
|
122
|
+
def add_remove_contacts_from_lists_activity_from_file(file_name, contents, lists)
|
131
123
|
url = Util::Config.get('endpoints.base_url') +
|
132
124
|
Util::Config.get('endpoints.remove_from_lists_activity')
|
133
125
|
url = build_url(url)
|
134
126
|
|
135
127
|
payload = { :file_name => file_name, :lists => lists, :data => contents, :multipart => true }
|
136
128
|
|
137
|
-
response = RestClient.post(url, payload, get_headers(
|
129
|
+
response = RestClient.post(url, payload, get_headers())
|
138
130
|
Components::Activity.create(JSON.parse(response.body))
|
139
131
|
end
|
140
132
|
|
@@ -8,19 +8,18 @@ module ConstantContact
|
|
8
8
|
module Services
|
9
9
|
class BaseService
|
10
10
|
class << self
|
11
|
-
attr_accessor :api_key
|
11
|
+
attr_accessor :api_key, :access_token
|
12
12
|
|
13
13
|
protected
|
14
14
|
|
15
15
|
# Return required headers for making an http request with Constant Contact
|
16
|
-
# @param [String] access_token - OAuth2 access token to be placed into the Authorization header
|
17
16
|
# @param [String] content_type - The MIME type of the body of the request, default is 'application/json'
|
18
17
|
# @return [Hash] - authorization headers
|
19
|
-
def get_headers(
|
18
|
+
def get_headers(content_type = 'application/json')
|
20
19
|
{
|
21
20
|
:content_type => content_type,
|
22
21
|
:accept => 'application/json',
|
23
|
-
:authorization => "Bearer #{access_token}",
|
22
|
+
:authorization => "Bearer #{BaseService.access_token}",
|
24
23
|
:user_agent => "AppConnect Ruby SDK v#{ConstantContact::SDK::VERSION} (#{RUBY_DESCRIPTION})",
|
25
24
|
:x_ctct_request_source => "sdk.ruby.#{ConstantContact::SDK::VERSION}"
|
26
25
|
}
|
@@ -10,29 +10,27 @@ module ConstantContact
|
|
10
10
|
class << self
|
11
11
|
|
12
12
|
# Create a new schedule for a campaign
|
13
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
14
13
|
# @param [Integer] campaign_id - Campaign id to be scheduled
|
15
14
|
# @param [Schedule] schedule - Schedule to be created
|
16
15
|
# @return [Schedule]
|
17
|
-
def add_schedule(
|
16
|
+
def add_schedule(campaign_id, schedule)
|
18
17
|
url = Util::Config.get('endpoints.base_url') +
|
19
18
|
sprintf(Util::Config.get('endpoints.campaign_schedules'), campaign_id)
|
20
19
|
url = build_url(url)
|
21
20
|
payload = schedule.to_json
|
22
|
-
response = RestClient.post(url, payload, get_headers(
|
21
|
+
response = RestClient.post(url, payload, get_headers())
|
23
22
|
Components::Schedule.create(JSON.parse(response.body))
|
24
23
|
end
|
25
24
|
|
26
25
|
|
27
26
|
# Get a list of schedules for a campaign
|
28
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
29
27
|
# @param [Integer] campaign_id - Campaign id to be scheduled
|
30
28
|
# @return [Array<Schedule>]
|
31
|
-
def get_schedules(
|
29
|
+
def get_schedules(campaign_id)
|
32
30
|
url = Util::Config.get('endpoints.base_url') +
|
33
31
|
sprintf(Util::Config.get('endpoints.campaign_schedules'), campaign_id)
|
34
32
|
url = build_url(url)
|
35
|
-
response = RestClient.get(url, get_headers(
|
33
|
+
response = RestClient.get(url, get_headers())
|
36
34
|
body = JSON.parse(response.body)
|
37
35
|
|
38
36
|
schedules = []
|
@@ -45,59 +43,55 @@ module ConstantContact
|
|
45
43
|
|
46
44
|
|
47
45
|
# Get a specific schedule for a campaign
|
48
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
49
46
|
# @param [Integer] campaign_id - Campaign id to get a schedule for
|
50
47
|
# @param [Integer] schedule_id - Schedule id to retrieve
|
51
48
|
# @return [Schedule]
|
52
|
-
def get_schedule(
|
49
|
+
def get_schedule(campaign_id, schedule_id)
|
53
50
|
url = Util::Config.get('endpoints.base_url') +
|
54
51
|
sprintf(Util::Config.get('endpoints.campaign_schedule'), campaign_id, schedule_id)
|
55
52
|
url = build_url(url)
|
56
|
-
response = RestClient.get(url, get_headers(
|
53
|
+
response = RestClient.get(url, get_headers())
|
57
54
|
Components::Schedule.create(JSON.parse(response.body))
|
58
55
|
end
|
59
56
|
|
60
57
|
|
61
58
|
# Delete a specific schedule for a campaign
|
62
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
63
59
|
# @param [Integer] campaign_id - Campaign id to delete a schedule for
|
64
60
|
# @param [Integer] schedule_id - Schedule id to delete
|
65
61
|
# @return [Boolean]
|
66
|
-
def delete_schedule(
|
62
|
+
def delete_schedule(campaign_id, schedule_id)
|
67
63
|
url = Util::Config.get('endpoints.base_url') +
|
68
64
|
sprintf(Util::Config.get('endpoints.campaign_schedule'), campaign_id, schedule_id)
|
69
65
|
url = build_url(url)
|
70
|
-
response = RestClient.delete(url, get_headers(
|
66
|
+
response = RestClient.delete(url, get_headers())
|
71
67
|
response.code == 204
|
72
68
|
end
|
73
69
|
|
74
70
|
|
75
71
|
# Update a specific schedule for a campaign
|
76
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
77
72
|
# @param [Integer] campaign_id - Campaign id to be scheduled
|
78
73
|
# @param [Schedule] schedule - Schedule to retrieve
|
79
74
|
# @return [Schedule]
|
80
|
-
def update_schedule(
|
75
|
+
def update_schedule(campaign_id, schedule)
|
81
76
|
url = Util::Config.get('endpoints.base_url') +
|
82
77
|
sprintf(Util::Config.get('endpoints.campaign_schedule'), campaign_id, schedule.id)
|
83
78
|
url = build_url(url)
|
84
79
|
payload = schedule.to_json
|
85
|
-
response = RestClient.put(url, payload, get_headers(
|
80
|
+
response = RestClient.put(url, payload, get_headers())
|
86
81
|
Components::Schedule.create(JSON.parse(response.body))
|
87
82
|
end
|
88
83
|
|
89
84
|
|
90
85
|
# Send a test send of a campaign
|
91
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
92
86
|
# @param [Integer] campaign_id - Id of campaign to send test of
|
93
87
|
# @param [TestSend] test_send - Test send details
|
94
88
|
# @return [TestSend]
|
95
|
-
def send_test(
|
89
|
+
def send_test(campaign_id, test_send)
|
96
90
|
url = Util::Config.get('endpoints.base_url') +
|
97
91
|
sprintf(Util::Config.get('endpoints.campaign_test_sends'), campaign_id)
|
98
92
|
url = build_url(url)
|
99
93
|
payload = test_send.to_json
|
100
|
-
response = RestClient.post(url, payload, get_headers(
|
94
|
+
response = RestClient.post(url, payload, get_headers())
|
101
95
|
Components::TestSend.create(JSON.parse(response.body))
|
102
96
|
end
|
103
97
|
|
@@ -10,16 +10,15 @@ module ConstantContact
|
|
10
10
|
class << self
|
11
11
|
|
12
12
|
# Get bounces for a given campaign
|
13
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
14
13
|
# @param [String] campaign_id - Campaign id
|
15
14
|
# @param [Hash] params - query parameters to be appended to request
|
16
15
|
# @return [ResultSet<BounceActivity>] - Containing a results array of BounceActivity
|
17
|
-
def get_bounces(
|
16
|
+
def get_bounces(campaign_id, params = {})
|
18
17
|
url = Util::Config.get('endpoints.base_url') +
|
19
18
|
sprintf(Util::Config.get('endpoints.campaign_tracking_bounces'), campaign_id)
|
20
19
|
url = build_url(url, params)
|
21
20
|
|
22
|
-
response = RestClient.get(url, get_headers(
|
21
|
+
response = RestClient.get(url, get_headers())
|
23
22
|
body = JSON.parse(response.body)
|
24
23
|
|
25
24
|
bounces = []
|
@@ -32,16 +31,15 @@ module ConstantContact
|
|
32
31
|
|
33
32
|
|
34
33
|
# Get clicks for a given campaign
|
35
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
36
34
|
# @param [String] campaign_id - Campaign id
|
37
35
|
# @param [Hash] params - query parameters to be appended to request
|
38
36
|
# @return [ResultSet<ClickActivity>] - Containing a results array of ClickActivity
|
39
|
-
def get_clicks(
|
37
|
+
def get_clicks(campaign_id, params = {})
|
40
38
|
url = Util::Config.get('endpoints.base_url') +
|
41
39
|
sprintf(Util::Config.get('endpoints.campaign_tracking_clicks'), campaign_id)
|
42
40
|
url = build_url(url, params)
|
43
41
|
|
44
|
-
response = RestClient.get(url, get_headers(
|
42
|
+
response = RestClient.get(url, get_headers())
|
45
43
|
body = JSON.parse(response.body)
|
46
44
|
|
47
45
|
clicks = []
|
@@ -54,16 +52,15 @@ module ConstantContact
|
|
54
52
|
|
55
53
|
|
56
54
|
# Get forwards for a given campaign
|
57
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
58
55
|
# @param [String] campaign_id - Campaign id
|
59
56
|
# @param [Hash] params - query parameters to be appended to request
|
60
57
|
# @return [ResultSet<ForwardActivity>] - Containing a results array of ForwardActivity
|
61
|
-
def get_forwards(
|
58
|
+
def get_forwards(campaign_id, params = {})
|
62
59
|
url = Util::Config.get('endpoints.base_url') +
|
63
60
|
sprintf(Util::Config.get('endpoints.campaign_tracking_forwards'), campaign_id)
|
64
61
|
url = build_url(url, params)
|
65
62
|
|
66
|
-
response = RestClient.get(url, get_headers(
|
63
|
+
response = RestClient.get(url, get_headers())
|
67
64
|
body = JSON.parse(response.body)
|
68
65
|
|
69
66
|
forwards = []
|
@@ -76,16 +73,15 @@ module ConstantContact
|
|
76
73
|
|
77
74
|
|
78
75
|
# Get opens for a given campaign
|
79
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
80
76
|
# @param [String] campaign_id - Campaign id
|
81
77
|
# @param [Hash] params - query parameters to be appended to request
|
82
78
|
# @return [ResultSet<OpenActivity>] - Containing a results array of OpenActivity
|
83
|
-
def get_opens(
|
79
|
+
def get_opens(campaign_id, params = {})
|
84
80
|
url = Util::Config.get('endpoints.base_url') +
|
85
81
|
sprintf(Util::Config.get('endpoints.campaign_tracking_opens'), campaign_id)
|
86
82
|
url = build_url(url, params)
|
87
83
|
|
88
|
-
response = RestClient.get(url, get_headers(
|
84
|
+
response = RestClient.get(url, get_headers())
|
89
85
|
body = JSON.parse(response.body)
|
90
86
|
|
91
87
|
opens = []
|
@@ -98,16 +94,15 @@ module ConstantContact
|
|
98
94
|
|
99
95
|
|
100
96
|
# Get sends for a given campaign
|
101
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
102
97
|
# @param [String] campaign_id - Campaign id
|
103
98
|
# @param [Hash] params - query parameters to be appended to request
|
104
99
|
# @return [ResultSet<SendActivity>] - Containing a results array of SendActivity
|
105
|
-
def get_sends(
|
100
|
+
def get_sends(campaign_id, params = {})
|
106
101
|
url = Util::Config.get('endpoints.base_url') +
|
107
102
|
sprintf(Util::Config.get('endpoints.campaign_tracking_sends'), campaign_id)
|
108
103
|
url = build_url(url, params)
|
109
104
|
|
110
|
-
response = RestClient.get(url, get_headers(
|
105
|
+
response = RestClient.get(url, get_headers())
|
111
106
|
body = JSON.parse(response.body)
|
112
107
|
|
113
108
|
sends = []
|
@@ -120,16 +115,15 @@ module ConstantContact
|
|
120
115
|
|
121
116
|
|
122
117
|
# Get unsubscribes for a given campaign
|
123
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
124
118
|
# @param [String] campaign_id - Campaign id
|
125
119
|
# @param [Hash] params - query params to be appended to request
|
126
120
|
# @return [ResultSet<UnsubscribeActivity>] - Containing a results array of UnsubscribeActivity
|
127
|
-
def get_unsubscribes(
|
121
|
+
def get_unsubscribes(campaign_id, params = {})
|
128
122
|
url = Util::Config.get('endpoints.base_url') +
|
129
123
|
sprintf(Util::Config.get('endpoints.campaign_tracking_unsubscribes'), campaign_id)
|
130
124
|
url = build_url(url, params)
|
131
125
|
|
132
|
-
response = RestClient.get(url, get_headers(
|
126
|
+
response = RestClient.get(url, get_headers())
|
133
127
|
body = JSON.parse(response.body)
|
134
128
|
|
135
129
|
unsubscribes = []
|
@@ -142,14 +136,13 @@ module ConstantContact
|
|
142
136
|
|
143
137
|
|
144
138
|
# Get a summary of reporting data for a given campaign
|
145
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
146
139
|
# @param [Integer] campaign_id - Campaign id
|
147
140
|
# @return [TrackingSummary]
|
148
|
-
def get_summary(
|
141
|
+
def get_summary(campaign_id)
|
149
142
|
url = Util::Config.get('endpoints.base_url') +
|
150
143
|
sprintf(Util::Config.get('endpoints.campaign_tracking_summary'), campaign_id)
|
151
144
|
url = build_url(url)
|
152
|
-
response = RestClient.get(url, get_headers(
|
145
|
+
response = RestClient.get(url, get_headers())
|
153
146
|
Components::TrackingSummary.create(JSON.parse(response.body))
|
154
147
|
end
|
155
148
|
|
@@ -10,14 +10,13 @@ module ConstantContact
|
|
10
10
|
class << self
|
11
11
|
|
12
12
|
# Get an array of contacts
|
13
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
14
13
|
# @param [Hash] params - query parameters to be appended to the request
|
15
14
|
# @return [ResultSet<Contact>]
|
16
|
-
def get_contacts(
|
15
|
+
def get_contacts(params = {})
|
17
16
|
url = Util::Config.get('endpoints.base_url') + Util::Config.get('endpoints.contacts')
|
18
17
|
url = build_url(url, params)
|
19
18
|
|
20
|
-
response = RestClient.get(url, get_headers(
|
19
|
+
response = RestClient.get(url, get_headers())
|
21
20
|
body = JSON.parse(response.body)
|
22
21
|
|
23
22
|
contacts = []
|
@@ -30,79 +29,73 @@ module ConstantContact
|
|
30
29
|
|
31
30
|
|
32
31
|
# Get contact details for a specific contact
|
33
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
34
32
|
# @param [Integer] contact_id - Unique contact id
|
35
33
|
# @return [Contact]
|
36
|
-
def get_contact(
|
34
|
+
def get_contact(contact_id)
|
37
35
|
url = Util::Config.get('endpoints.base_url') +
|
38
36
|
sprintf(Util::Config.get('endpoints.contact'), contact_id)
|
39
37
|
url = build_url(url)
|
40
|
-
response = RestClient.get(url, get_headers(
|
38
|
+
response = RestClient.get(url, get_headers())
|
41
39
|
Components::Contact.create(JSON.parse(response.body))
|
42
40
|
end
|
43
41
|
|
44
42
|
|
45
43
|
# Add a new contact to the Constant Contact account
|
46
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
47
44
|
# @param [Contact] contact - Contact to add
|
48
45
|
# @param [Boolean] params - query params to be appended to the request
|
49
46
|
# @return [Contact]
|
50
|
-
def add_contact(
|
47
|
+
def add_contact(contact, params = {})
|
51
48
|
url = Util::Config.get('endpoints.base_url') + Util::Config.get('endpoints.contacts')
|
52
49
|
url = build_url(url, params)
|
53
50
|
payload = contact.to_json
|
54
|
-
response = RestClient.post(url, payload, get_headers(
|
51
|
+
response = RestClient.post(url, payload, get_headers())
|
55
52
|
Components::Contact.create(JSON.parse(response.body))
|
56
53
|
end
|
57
54
|
|
58
55
|
|
59
56
|
# Delete contact details for a specific contact
|
60
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
61
57
|
# @param [Integer] contact_id - Unique contact id
|
62
58
|
# @return [Boolean]
|
63
|
-
def delete_contact(
|
59
|
+
def delete_contact(contact_id)
|
64
60
|
url = Util::Config.get('endpoints.base_url') + sprintf(Util::Config.get('endpoints.contact'), contact_id)
|
65
61
|
url = build_url(url)
|
66
|
-
response = RestClient.delete(url, get_headers(
|
62
|
+
response = RestClient.delete(url, get_headers())
|
67
63
|
response.code == 204
|
68
64
|
end
|
69
65
|
|
70
66
|
|
71
67
|
# Delete a contact from all contact lists
|
72
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
73
68
|
# @param [Integer] contact_id - Contact id to be removed from lists
|
74
69
|
# @return [Boolean]
|
75
|
-
def delete_contact_from_lists(
|
70
|
+
def delete_contact_from_lists(contact_id)
|
76
71
|
url = Util::Config.get('endpoints.base_url') + sprintf(Util::Config.get('endpoints.contact_lists'), contact_id)
|
77
72
|
url = build_url(url)
|
78
|
-
response = RestClient.delete(url, get_headers(
|
73
|
+
response = RestClient.delete(url, get_headers())
|
79
74
|
response.code == 204
|
80
75
|
end
|
81
76
|
|
82
77
|
|
83
78
|
# Delete a contact from a specific contact list
|
84
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
85
79
|
# @param [Integer] contact_id - Contact id to be removed
|
86
80
|
# @param [Integer] list_id - ContactList id to remove the contact from
|
87
81
|
# @return [Boolean]
|
88
|
-
def delete_contact_from_list(
|
82
|
+
def delete_contact_from_list(contact_id, list_id)
|
89
83
|
url = Util::Config.get('endpoints.base_url') + sprintf(Util::Config.get('endpoints.contact_list'), contact_id, list_id)
|
90
84
|
url = build_url(url)
|
91
|
-
response = RestClient.delete(url, get_headers(
|
85
|
+
response = RestClient.delete(url, get_headers())
|
92
86
|
response.code == 204
|
93
87
|
end
|
94
88
|
|
95
89
|
|
96
90
|
# Update contact details for a specific contact
|
97
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
98
91
|
# @param [Contact] contact - Contact to be updated
|
99
92
|
# @param [Hash] params - query params to be appended to the request
|
100
93
|
# @return [Contact]
|
101
|
-
def update_contact(
|
94
|
+
def update_contact(contact, params = {})
|
102
95
|
url = Util::Config.get('endpoints.base_url') + sprintf(Util::Config.get('endpoints.contact'), contact.id)
|
103
96
|
url = build_url(url, params)
|
104
97
|
payload = contact.to_json
|
105
|
-
response = RestClient.put(url, payload, get_headers(
|
98
|
+
response = RestClient.put(url, payload, get_headers())
|
106
99
|
Components::Contact.create(JSON.parse(response.body))
|
107
100
|
end
|
108
101
|
|