constantcontact 1.3.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
|