gnumarcelo-campaigning 0.12.1 → 0.14.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.
- data/VERSION.yml +2 -2
- data/lib/campaigning/campaign.rb +24 -19
- data/lib/campaigning/campaigning.rb +16 -6
- data/lib/campaigning/client.rb +51 -25
- data/lib/campaigning/list.rb +19 -14
- data/lib/campaigning/soap/generated/default.rb +162 -0
- data/lib/campaigning/soap/generated/defaultDriver.rb +40 -0
- data/lib/campaigning/soap/generated/defaultMappingRegistry.rb +131 -0
- data/lib/campaigning/subscriber.rb +17 -10
- data/lib/campaigning/template.rb +124 -0
- data/test/campaigning_test.rb +0 -6
- data/test/client_test.rb +28 -15
- data/test/template_test.rb +62 -0
- metadata +5 -2
data/VERSION.yml
CHANGED
data/lib/campaigning/campaign.rb
CHANGED
@@ -11,10 +11,11 @@ module Campaigning
|
|
11
11
|
attr_accessor :sentDate
|
12
12
|
attr_accessor :totalRecipients
|
13
13
|
|
14
|
-
def initialize(campaignID = nil, subject = nil, sentDate = nil, totalRecipients = nil)
|
14
|
+
def initialize(campaignID = nil, subject = nil, sentDate = nil, totalRecipients = nil, opts={})
|
15
|
+
@apiKey = opts[:apiKey] || CAMPAIGN_MONITOR_API_KEY
|
15
16
|
@campaignID = campaignID
|
16
|
-
@subject
|
17
|
-
@sentDate
|
17
|
+
@subject = subject
|
18
|
+
@sentDate = sentDate
|
18
19
|
@totalRecipients = totalRecipients
|
19
20
|
end
|
20
21
|
|
@@ -35,6 +36,7 @@ module Campaigning
|
|
35
36
|
# * :textUrl - The URL of the Text content for the new campaign. If no unsubscribe link is found then one will be added automatically.
|
36
37
|
# * :subscriberListIDs - An array of lists to send the campaign to. See http://www.campaignmonitor.com/api/required/#listid for more details.
|
37
38
|
# * :listSegments - An array of Segment Names and their appropriate List ID s to send the campaign to.
|
39
|
+
# * :apiKey - optional API key to use to make request. Will use CAMPAIGN_MONITOR_API_KEY if not set.
|
38
40
|
#
|
39
41
|
#*Return*:
|
40
42
|
#
|
@@ -43,7 +45,7 @@ module Campaigning
|
|
43
45
|
#*Error*: An Exception containing the cause of the error will be raised.
|
44
46
|
def self.create!(params)
|
45
47
|
response = @@soap.createCampaign(
|
46
|
-
:apiKey => CAMPAIGN_MONITOR_API_KEY,
|
48
|
+
:apiKey => params[:apiKey] || CAMPAIGN_MONITOR_API_KEY,
|
47
49
|
:clientID => params[:clientID],
|
48
50
|
:campaignName => params[:campaignName],
|
49
51
|
:campaignSubject => params[:campaignSubject],
|
@@ -57,9 +59,9 @@ module Campaigning
|
|
57
59
|
)
|
58
60
|
|
59
61
|
campaign_id = handle_response response.campaign_CreateResult
|
60
|
-
Campaign.new campaign_id
|
62
|
+
Campaign.new( campaign_id, nil, nil, nil, :apiKey=> (params[:apiKey] || CAMPAIGN_MONITOR_API_KEY) )
|
61
63
|
end
|
62
|
-
|
64
|
+
|
63
65
|
#Deletes an existing campaign.
|
64
66
|
#
|
65
67
|
#*Return*:
|
@@ -69,20 +71,23 @@ module Campaigning
|
|
69
71
|
#
|
70
72
|
#*Error*: An Exception containing the cause of the error will be raised.
|
71
73
|
def delete!
|
72
|
-
Campaign.delete!(@campaignID)
|
74
|
+
Campaign.delete!(@campaignID, :apiKey=> @apiKey)
|
73
75
|
self.campaignID, self.subject, self.sentDate, self.totalRecipients = nil, nil, nil, nil
|
74
76
|
end
|
75
77
|
|
76
78
|
#Deletes an existing campaign.
|
77
79
|
#
|
80
|
+
#Available _opts_ argument are:
|
81
|
+
# * :apiKey - optional API key to use to make request. Will use CAMPAIGN_MONITOR_API_KEY if not set.
|
82
|
+
#
|
78
83
|
#*Return*:
|
79
84
|
#
|
80
85
|
#*Success*: Upon a successful call, this method will return a Campaigning::Result object wich consists of a +code+ and +message+ fields
|
81
86
|
#containing a successful message.
|
82
87
|
#
|
83
88
|
#*Error*: An Exception containing the cause of the error will be raised.
|
84
|
-
def self.delete!(campaign_id)
|
85
|
-
response = @@soap.deleteCampaign(:apiKey => CAMPAIGN_MONITOR_API_KEY, :campaignID => campaign_id)
|
89
|
+
def self.delete!(campaign_id, opts={})
|
90
|
+
response = @@soap.deleteCampaign(:apiKey => opts[:apiKey] || CAMPAIGN_MONITOR_API_KEY, :campaignID => campaign_id)
|
86
91
|
handle_response response.campaign_DeleteResult
|
87
92
|
end
|
88
93
|
|
@@ -96,7 +101,7 @@ module Campaigning
|
|
96
101
|
#
|
97
102
|
#*Error*: An Exception containing the cause of the error will be raised.
|
98
103
|
def bounces
|
99
|
-
response = @@soap.getCampaignBounces(:apiKey =>
|
104
|
+
response = @@soap.getCampaignBounces(:apiKey => @apiKey, :campaignID => @campaignID )
|
100
105
|
handle_response response.campaign_GetBouncesResult
|
101
106
|
end
|
102
107
|
|
@@ -108,10 +113,10 @@ module Campaigning
|
|
108
113
|
#
|
109
114
|
#*Error*: An Exception containing the cause of the error will be raised.
|
110
115
|
def lists
|
111
|
-
response = @@soap.getCampaignLists(:apiKey =>
|
116
|
+
response = @@soap.getCampaignLists(:apiKey => @apiKey, :campaignID => @campaignID )
|
112
117
|
lists = handle_response response.campaign_GetListsResult
|
113
118
|
lists.collect do |list|
|
114
|
-
List.new(list.listID, list.name)
|
119
|
+
List.new(list.listID, list.name, :apiKey=> @apiKey)
|
115
120
|
end
|
116
121
|
end
|
117
122
|
|
@@ -125,7 +130,7 @@ module Campaigning
|
|
125
130
|
#
|
126
131
|
#*Error*: An Exception containing the cause of the error will be raised.
|
127
132
|
def opens
|
128
|
-
response = @@soap.getCampaignOpens(:apiKey =>
|
133
|
+
response = @@soap.getCampaignOpens(:apiKey => @apiKey, :campaignID => @campaignID )
|
129
134
|
handle_response response.campaign_GetOpensResult
|
130
135
|
end
|
131
136
|
|
@@ -150,7 +155,7 @@ module Campaigning
|
|
150
155
|
#
|
151
156
|
#*Error*: An Exception containing the cause of the error will be raised.
|
152
157
|
def subscriber_clicks
|
153
|
-
response = @@soap.getSubscriberClicks(:apiKey =>
|
158
|
+
response = @@soap.getSubscriberClicks(:apiKey => @apiKey, :campaignID => @campaignID )
|
154
159
|
handle_response response.campaign_GetSubscriberClicksResult
|
155
160
|
end
|
156
161
|
|
@@ -164,7 +169,7 @@ module Campaigning
|
|
164
169
|
#
|
165
170
|
#*Error*: An Exception containing the cause of the error will be raised.
|
166
171
|
def summary
|
167
|
-
response = @@soap.getCampaignSummary(:apiKey =>
|
172
|
+
response = @@soap.getCampaignSummary(:apiKey => @apiKey, :campaignID => @campaignID )
|
168
173
|
handle_response response.campaign_GetSummaryResult
|
169
174
|
end
|
170
175
|
|
@@ -177,7 +182,7 @@ module Campaigning
|
|
177
182
|
#
|
178
183
|
#*Error*: An Exception containing the cause of the error will be raised.
|
179
184
|
def unsubscribes
|
180
|
-
response = @@soap.getCampaignUnsubscribes(:apiKey =>
|
185
|
+
response = @@soap.getCampaignUnsubscribes(:apiKey => @apiKey, :campaignID => @campaignID )
|
181
186
|
handle_response response.campaign_GetUnsubscribesResult
|
182
187
|
end
|
183
188
|
|
@@ -199,13 +204,13 @@ module Campaigning
|
|
199
204
|
#*Error*: An Exception containing the cause of the error will be raised.
|
200
205
|
def send!(params)
|
201
206
|
response = @@soap.sendCampaign(
|
202
|
-
:apiKey =>
|
207
|
+
:apiKey => @apiKey,
|
203
208
|
:campaignID => @campaignID,
|
204
209
|
:confirmationEmail => params[:confirmationEmail],
|
205
210
|
:sendDate => params[:sendDate]
|
206
211
|
)
|
207
212
|
handle_response response.campaign_SendResult
|
208
213
|
end
|
209
|
-
|
214
|
+
|
210
215
|
end
|
211
|
-
end
|
216
|
+
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
gem "soap4r", "~> 1.5.0"
|
2
|
+
require File.expand_path(File.dirname(__FILE__)) + '/template.rb'
|
2
3
|
require File.expand_path(File.dirname(__FILE__)) + '/client.rb'
|
3
4
|
require File.expand_path(File.dirname(__FILE__)) + '/campaign.rb'
|
4
5
|
require File.expand_path(File.dirname(__FILE__)) + '/subscriber.rb'
|
@@ -12,21 +13,30 @@ module Campaigning
|
|
12
13
|
#Gets the server system time for your time zone.
|
13
14
|
#This is handy for when you are syncing your {Campaign Monitor}[http://www.campaignmonitor.com] lists with some other in-house list,
|
14
15
|
#allowing you accurately determine the time on our server when you carry out the synchronization.
|
15
|
-
|
16
|
-
|
16
|
+
#
|
17
|
+
#Aviable _opts_ arguments are:
|
18
|
+
# * :apiKey - optional API key to use to make request. Will use CAMPAIGN_MONITOR_API_KEY if not set.
|
19
|
+
def self.system_date(opts={})
|
20
|
+
response = @@soap.getSystemDate(:apiKey => opts[:apiKey] || CAMPAIGN_MONITOR_API_KEY)
|
17
21
|
dateTime = handle_response response.user_GetSystemDateResult
|
18
22
|
end
|
19
23
|
|
20
24
|
##
|
21
25
|
#This method returns an Array of Strings representing all the available timezones.
|
22
|
-
|
23
|
-
|
26
|
+
#
|
27
|
+
#Aviable _opts_ arguments are:
|
28
|
+
# * :apiKey - optional API key to use to make request. Will use CAMPAIGN_MONITOR_API_KEY if not set.
|
29
|
+
def self.timezones(opts={})
|
30
|
+
handle_response @@soap.getTimezones(:apiKey => opts[:apiKey] || CAMPAIGN_MONITOR_API_KEY).user_GetTimezonesResult
|
24
31
|
end
|
25
32
|
|
26
33
|
##
|
27
34
|
#This method returns an Array of Strings representing all the available countries.
|
28
|
-
|
29
|
-
|
35
|
+
#
|
36
|
+
#Aviable _opts_ arguments are:
|
37
|
+
# * :apiKey - optional API key to use to make request. Will use CAMPAIGN_MONITOR_API_KEY if not set.
|
38
|
+
def self.countries(opts={})
|
39
|
+
response = @@soap.getCountries(:apiKey => opts[:apiKey] || CAMPAIGN_MONITOR_API_KEY)
|
30
40
|
dateTime = handle_response response.user_GetCountriesResult
|
31
41
|
end
|
32
42
|
|
data/lib/campaigning/client.rb
CHANGED
@@ -8,10 +8,25 @@ module Campaigning
|
|
8
8
|
attr_accessor :clientID
|
9
9
|
attr_accessor :name
|
10
10
|
|
11
|
-
def initialize(clientID = nil, name = nil)
|
12
|
-
@
|
13
|
-
@
|
11
|
+
def initialize(clientID = nil, name = nil, opts={})
|
12
|
+
@apiKey = opts[:apiKey] || CAMPAIGN_MONITOR_API_KEY
|
13
|
+
@clientID = clientID
|
14
|
+
@name = name
|
14
15
|
end
|
16
|
+
|
17
|
+
#Gets a list of all templates for a client.
|
18
|
+
#
|
19
|
+
#*Return*:
|
20
|
+
#
|
21
|
+
#*Success*: Upon a successful call, this method will return a collection of Campaigning::Template objects.
|
22
|
+
#
|
23
|
+
#*Error*: An Exception containing the cause of the error will be raised.
|
24
|
+
def templates
|
25
|
+
response = @@soap.getClientTemplates(:apiKey => @apiKey, :clientID => @clientID)
|
26
|
+
templates = handle_response response.client_GetTemplatesResult
|
27
|
+
templates.collect {|template| Template.new(template.templateID, template.name, template.previewURL, template.screenshotURL, :apiKey=> @apiKey)}
|
28
|
+
end
|
29
|
+
|
15
30
|
|
16
31
|
#Gets a list of all subscriber lists for a client.
|
17
32
|
#
|
@@ -21,9 +36,9 @@ module Campaigning
|
|
21
36
|
#
|
22
37
|
#*Error*: An Exception containing the cause of the error will be raised.
|
23
38
|
def lists
|
24
|
-
response = @@soap.getClientLists(:apiKey =>
|
39
|
+
response = @@soap.getClientLists(:apiKey => @apiKey, :clientID => @clientID)
|
25
40
|
lists = handle_response response.client_GetListsResult
|
26
|
-
lists.collect {|list| List.new(list.listID, list.name)}
|
41
|
+
lists.collect {|list| List.new(list.listID, list.name, :apiKey=> @apiKey)}
|
27
42
|
end
|
28
43
|
|
29
44
|
#This method find a List by a given name
|
@@ -43,6 +58,9 @@ module Campaigning
|
|
43
58
|
|
44
59
|
#This method find a Client by a given name
|
45
60
|
#
|
61
|
+
#Aviable _opts_ arguments are:
|
62
|
+
# * :apiKey - optional API key to use to make request. Will use CAMPAIGN_MONITOR_API_KEY if not set.
|
63
|
+
#
|
46
64
|
#*Return*:
|
47
65
|
#
|
48
66
|
#Client FOUND: If it found any client with the given name it will return a Campaigning::Client object containing the found client.
|
@@ -52,23 +70,26 @@ module Campaigning
|
|
52
70
|
#*Error*: An Exception containing the cause of the error will be raised.
|
53
71
|
#-- TODO: Refactor this method and increase performance?
|
54
72
|
#-- TODO: Tha campaign monitor permit two users with the same name, what to do?
|
55
|
-
def self.find_by_name(name)
|
56
|
-
client_list = Client.get_all_clients
|
73
|
+
def self.find_by_name(name, opts={})
|
74
|
+
client_list = Client.get_all_clients(opts)
|
57
75
|
client_found = client_list.find {|client| name == client.name}
|
58
|
-
Client.new(client_found.clientID, client_found.name) if client_found
|
76
|
+
Client.new(client_found.clientID, client_found.name, :apiKey=> opts[:apiKey]) if client_found
|
59
77
|
end
|
60
78
|
|
61
79
|
#Gets all clients for a given user (CAMPAIGN_MONITOR_API_KEY).
|
62
80
|
#
|
81
|
+
#Aviable _opts_ arguments are:
|
82
|
+
# * :apiKey - optional API key to use to make request. Will use CAMPAIGN_MONITOR_API_KEY if not set.
|
83
|
+
#
|
63
84
|
#*Return*:
|
64
85
|
#
|
65
86
|
#*Success*: Upon a successful call, this method will return a collection of Campaigning::Client objects.
|
66
87
|
#
|
67
88
|
#*Error*: An Exception containing the cause of the error will be raised.
|
68
|
-
def self.get_all_clients
|
69
|
-
response
|
70
|
-
clients
|
71
|
-
clients.collect {|client| Client.new(client.clientID, client.name)}
|
89
|
+
def self.get_all_clients(opts={})
|
90
|
+
response = @@soap.getClients(:apiKey => opts[:apiKey] || CAMPAIGN_MONITOR_API_KEY)
|
91
|
+
clients = handle_response response.user_GetClientsResult
|
92
|
+
clients.collect {|client| Client.new(client.clientID, client.name, :apiKey=> opts[:apiKey])}
|
72
93
|
end
|
73
94
|
|
74
95
|
#This method creates a brand new client with no access to the application.
|
@@ -83,6 +104,8 @@ module Campaigning
|
|
83
104
|
# using the API procedure Campaigning.countries
|
84
105
|
# * :timezone - Client timezone for tracking and reporting data. A valid timezone list is available here or by using the API
|
85
106
|
# procedure Campaigning.timezones.
|
107
|
+
# * :apiKey - optional API key to use to make request. Will use CAMPAIGN_MONITOR_API_KEY if not set.
|
108
|
+
#
|
86
109
|
#*Return*:
|
87
110
|
#
|
88
111
|
#*Success*: Upon a successful call, this method will return a Campaigning::Client object representing the newly created client.
|
@@ -90,14 +113,14 @@ module Campaigning
|
|
90
113
|
#*Error*: An Exception containing the cause of the error will be raised.
|
91
114
|
def self.create!(params)
|
92
115
|
response = @@soap.createClient(
|
93
|
-
:apiKey => CAMPAIGN_MONITOR_API_KEY,
|
116
|
+
:apiKey => params[:apiKey] || CAMPAIGN_MONITOR_API_KEY,
|
94
117
|
:companyName => params[:companyName],
|
95
118
|
:contactName => params[:contactName],
|
96
119
|
:emailAddress => params[:emailAddress],
|
97
120
|
:country => params[:country],
|
98
121
|
:timezone => params[:timezone]
|
99
122
|
)
|
100
|
-
Client.new( handle_response(response.client_CreateResult), params[:companyName] )
|
123
|
+
Client.new( handle_response(response.client_CreateResult), params[:companyName], :apiKey=> params[:apiKey] )
|
101
124
|
end
|
102
125
|
|
103
126
|
#Deletes a client from your account.
|
@@ -109,21 +132,24 @@ module Campaigning
|
|
109
132
|
#
|
110
133
|
#*Error*: An Exception containing the cause of the error will be raised.
|
111
134
|
def delete!
|
112
|
-
response = Client.delete!(@clientID)
|
135
|
+
response = Client.delete!(@clientID, :apiKey=> @apiKey)
|
113
136
|
self.clientID, self.name = nil
|
114
137
|
response
|
115
138
|
end
|
116
139
|
|
117
140
|
#Deletes a client from your account.
|
118
141
|
#
|
142
|
+
#Aviable _opts_ arguments are:
|
143
|
+
# * :apiKey - optional API key to use to make request. Will use CAMPAIGN_MONITOR_API_KEY if not set.
|
144
|
+
#
|
119
145
|
#*Return*:
|
120
146
|
#
|
121
147
|
#*Success*: Upon a successful call, this method will return a Campaigning::Result object wich consists of a +code+ and +message+ fields
|
122
148
|
#containing a successful message.
|
123
149
|
#
|
124
150
|
#*Error*: An Exception containing the cause of the error will be raised.
|
125
|
-
def self.delete!(client_id)
|
126
|
-
response = @@soap.deleteClient(:apiKey => CAMPAIGN_MONITOR_API_KEY, :clientID => client_id)
|
151
|
+
def self.delete!(client_id, opts={})
|
152
|
+
response = @@soap.deleteClient(:apiKey => opts[:apiKey] || CAMPAIGN_MONITOR_API_KEY, :clientID => client_id)
|
127
153
|
handle_response response.client_DeleteResult
|
128
154
|
end
|
129
155
|
|
@@ -136,7 +162,7 @@ module Campaigning
|
|
136
162
|
#
|
137
163
|
#*Error*: An Exception containing the cause of the error will be raised.
|
138
164
|
def segments # TODO: Verify the type return for this method.
|
139
|
-
response = @@soap.getClientSegments(:apiKey =>
|
165
|
+
response = @@soap.getClientSegments(:apiKey => @apiKey, :clientID => @clientID )
|
140
166
|
handle_response response.client_GetSegmentsResult
|
141
167
|
end
|
142
168
|
|
@@ -167,10 +193,10 @@ module Campaigning
|
|
167
193
|
#
|
168
194
|
#*Error*: An Exception containing the cause of the error will be raised.
|
169
195
|
def campaigns
|
170
|
-
response = @@soap.getClientCampaigns(:apiKey =>
|
196
|
+
response = @@soap.getClientCampaigns(:apiKey => @apiKey, :clientID => @clientID )
|
171
197
|
campaign_list = handle_response response.client_GetCampaignsResult
|
172
198
|
campaign_list.collect do |campaign|
|
173
|
-
Campaign.new(campaign.campaignID, campaign.subject, campaign.sentDate, campaign.totalRecipients)
|
199
|
+
Campaign.new(campaign.campaignID, campaign.subject, campaign.sentDate, campaign.totalRecipients, :apiKey=> @apiKey)
|
174
200
|
end
|
175
201
|
end
|
176
202
|
|
@@ -204,7 +230,7 @@ module Campaigning
|
|
204
230
|
#
|
205
231
|
#*Error*: An Exception containing the cause of the error will be raised.
|
206
232
|
def details
|
207
|
-
response = @@soap.getClientDetail(:apiKey =>
|
233
|
+
response = @@soap.getClientDetail(:apiKey => @apiKey, :clientID => @clientID )
|
208
234
|
handle_response response.client_GetDetailResult
|
209
235
|
end
|
210
236
|
|
@@ -216,7 +242,7 @@ module Campaigning
|
|
216
242
|
#
|
217
243
|
#*Error*: An Exception containing the cause of the error will be raised.
|
218
244
|
def suppression_list
|
219
|
-
response = @@soap.getClientSuppressionList(:apiKey =>
|
245
|
+
response = @@soap.getClientSuppressionList(:apiKey => @apiKey, :clientID => @clientID )
|
220
246
|
handle_response response.client_GetSuppressionListResult
|
221
247
|
end
|
222
248
|
|
@@ -245,7 +271,7 @@ module Campaigning
|
|
245
271
|
# rate. Further detail is available at http://help.campaignmonitor.com/topic.aspx?t=118.
|
246
272
|
# * :designAndSpamTestFee - Expressed in the chosen currency's major unit (for example, sending "10" means "$10" if USD is used). Only required
|
247
273
|
# if BillingType is set to ClientPaysWithMarkup and client has access to design and spam tests, in which case the fee
|
248
|
-
# should be equal to or higher than the standard rate (identical to the standard DeliveryFee for that currency).
|
274
|
+
# should be equal to or higher than the standard rate (identical to the standard DeliveryFee for that currency).
|
249
275
|
#
|
250
276
|
#
|
251
277
|
#
|
@@ -259,7 +285,7 @@ module Campaigning
|
|
259
285
|
#*Error*: An Exception containing the cause of the error will be raised.
|
260
286
|
def update_access_and_billing!(params)
|
261
287
|
response = @@soap.updateClientAccessAndBilling(
|
262
|
-
:apiKey =>
|
288
|
+
:apiKey => @apiKey,
|
263
289
|
:clientID => @clientID,
|
264
290
|
:accessLevel => params[:accessLevel],
|
265
291
|
:username => params.fetch(:username, ""),
|
@@ -293,7 +319,7 @@ module Campaigning
|
|
293
319
|
#*Error*: An Exception containing the cause of the error will be raised.
|
294
320
|
def update_basics!(params)
|
295
321
|
response = @@soap.updateClientBasics(
|
296
|
-
:apiKey =>
|
322
|
+
:apiKey => @apiKey,
|
297
323
|
:clientID => @clientID,
|
298
324
|
:companyName => params[:companyName],
|
299
325
|
:contactName => params[:contactName],
|
data/lib/campaigning/list.rb
CHANGED
@@ -8,7 +8,8 @@ module Campaigning
|
|
8
8
|
attr_accessor :listID
|
9
9
|
attr_accessor :name
|
10
10
|
|
11
|
-
def initialize(listID = nil, name = nil)
|
11
|
+
def initialize(listID = nil, name = nil, opts={})
|
12
|
+
@apiKey = opts[:apiKey] || CAMPAIGN_MONITOR_API_KEY
|
12
13
|
@listID = listID
|
13
14
|
@name = name
|
14
15
|
end
|
@@ -24,6 +25,7 @@ module Campaigning
|
|
24
25
|
# the help documentation for more details of what this means.
|
25
26
|
# * :confirmationSuccessPage - Successful email confirmations will be redirected to this URL. Ignored if ConfirmOptIn
|
26
27
|
# is false. If left blank or omitted a generic confirmation page is used.
|
28
|
+
# * :apiKey - optional API key to use to make request. Will use CAMPAIGN_MONITOR_API_KEY if not set.
|
27
29
|
#*Return*:
|
28
30
|
#
|
29
31
|
#*Success*: Upon a successful call, this method will return a Campaigning::List object representing the newly created list.
|
@@ -31,7 +33,7 @@ module Campaigning
|
|
31
33
|
#*Error*: An Exception containing the cause of the error will be raised.
|
32
34
|
def self.create!(params)
|
33
35
|
response = @@soap.createList(
|
34
|
-
:apiKey => CAMPAIGN_MONITOR_API_KEY,
|
36
|
+
:apiKey => params[:apiKey] || CAMPAIGN_MONITOR_API_KEY,
|
35
37
|
:clientID => params[:clientID],
|
36
38
|
:title => params[:title],
|
37
39
|
:unsubscribePage => params.fetch(:unsubscribePage, ""),
|
@@ -39,7 +41,7 @@ module Campaigning
|
|
39
41
|
:confirmationSuccessPage => params.fetch(:confirmationSuccessPage, "")
|
40
42
|
)
|
41
43
|
new_list_id = handle_response response.list_CreateResult
|
42
|
-
List.new(new_list_id, params[:title])
|
44
|
+
List.new(new_list_id, params[:title], :apiKey=> params[:apiKey])
|
43
45
|
end
|
44
46
|
|
45
47
|
#Creates a new custom field for a list
|
@@ -58,7 +60,7 @@ module Campaigning
|
|
58
60
|
#*Error*: An Exception containing the cause of the error will be raised.
|
59
61
|
def create_custom_field!(params)
|
60
62
|
response = @@soap.createListCustomField(
|
61
|
-
:apiKey =>
|
63
|
+
:apiKey => @apiKey,
|
62
64
|
:listID => @listID,
|
63
65
|
:fieldName => params[:fieldName],
|
64
66
|
:dataType => params[:dataType],
|
@@ -76,20 +78,23 @@ module Campaigning
|
|
76
78
|
#
|
77
79
|
#*Error*: An Exception containing the cause of the error will be raised.
|
78
80
|
def delete!
|
79
|
-
List.delete!(@listID)
|
81
|
+
List.delete!(@listID, :apiKey=> @apiKey)
|
80
82
|
self.listID, self.name = nil, nil
|
81
83
|
end
|
82
84
|
|
83
85
|
#Deletes a list
|
84
86
|
#
|
87
|
+
#Aviable _opts_ arguments are:
|
88
|
+
# * :apiKey - optional API key to use to make request. Will use CAMPAIGN_MONITOR_API_KEY if not set.
|
89
|
+
#
|
85
90
|
#*Return*:
|
86
91
|
#
|
87
92
|
#*Success*: Upon a successful call, this method will return a Campaigning::Result object wich consists of a +code+ and +message+ fields
|
88
93
|
#containing a successful message.
|
89
94
|
#
|
90
95
|
#*Error*: An Exception containing the cause of the error will be raised.
|
91
|
-
def self.delete!(list_id)
|
92
|
-
response = @@soap.deleteList(:apiKey => CAMPAIGN_MONITOR_API_KEY, :listID => list_id)
|
96
|
+
def self.delete!(list_id, opts={})
|
97
|
+
response = @@soap.deleteList(:apiKey => opts[:apiKey] || CAMPAIGN_MONITOR_API_KEY, :listID => list_id)
|
93
98
|
handle_response response.list_DeleteResult
|
94
99
|
end
|
95
100
|
|
@@ -102,7 +107,7 @@ module Campaigning
|
|
102
107
|
#
|
103
108
|
#*Error*: An Exception containing the cause of the error will be raised.
|
104
109
|
def delete_custom_field!(key)
|
105
|
-
response = @@soap.deleteListCustomField(:apiKey =>
|
110
|
+
response = @@soap.deleteListCustomField(:apiKey => @apiKey, :listID => @listID, :key => '['+key+']')
|
106
111
|
handle_response response.list_DeleteCustomFieldResult
|
107
112
|
end
|
108
113
|
|
@@ -115,7 +120,7 @@ module Campaigning
|
|
115
120
|
#
|
116
121
|
#*Error*: An Exception containing the cause of the error will be raised.
|
117
122
|
def custom_fields
|
118
|
-
response = @@soap.getListCustomFields(:apiKey =>
|
123
|
+
response = @@soap.getListCustomFields(:apiKey => @apiKey, :listID => @listID)
|
119
124
|
handle_response response.list_GetCustomFieldsResult
|
120
125
|
end
|
121
126
|
|
@@ -128,7 +133,7 @@ module Campaigning
|
|
128
133
|
#
|
129
134
|
#*Error*: An Exception containing the cause of the error will be raised.
|
130
135
|
def details
|
131
|
-
response = @@soap.getListDetail(:apiKey =>
|
136
|
+
response = @@soap.getListDetail(:apiKey => @apiKey, :listID => @listID)
|
132
137
|
handle_response response.list_GetDetailResult
|
133
138
|
end
|
134
139
|
|
@@ -155,7 +160,7 @@ module Campaigning
|
|
155
160
|
#*Error*: An Exception containing the cause of the error will be raised.
|
156
161
|
def find_active_subscribers(joined_at)
|
157
162
|
response = @@soap.getSubscribers(
|
158
|
-
:apiKey =>
|
163
|
+
:apiKey => @apiKey,
|
159
164
|
:listID => @listID,
|
160
165
|
:date =>joined_at.strftime('%Y-%m-%d %H:%M:%S')
|
161
166
|
)
|
@@ -175,7 +180,7 @@ module Campaigning
|
|
175
180
|
#*Error*: An Exception containing the cause of the error will be raised.
|
176
181
|
def find_unsubscribed(unjoined_at)
|
177
182
|
response = @@soap.getUnsubscribed(
|
178
|
-
:apiKey =>
|
183
|
+
:apiKey => @apiKey,
|
179
184
|
:listID => @listID,
|
180
185
|
:date => unjoined_at.strftime('%Y-%m-%d %H:%M:%S') # TODO: Move that to a helper method
|
181
186
|
)
|
@@ -192,7 +197,7 @@ module Campaigning
|
|
192
197
|
#*Error*: An Exception containing the cause of the error will be raised.
|
193
198
|
def find_single_subscriber(email_address) # TODO: Create a mehod to handle with custom fields returned like (names from "State Name" to "state_name")
|
194
199
|
response = @@soap.getSingleSubscriber(
|
195
|
-
:apiKey =>
|
200
|
+
:apiKey => @apiKey,
|
196
201
|
:listID => @listID,
|
197
202
|
:emailAddress => email_address
|
198
203
|
)
|
@@ -218,7 +223,7 @@ module Campaigning
|
|
218
223
|
#*Error*: An Exception containing the cause of the error will be raised.
|
219
224
|
def update!(params)
|
220
225
|
response = @@soap.updateList(
|
221
|
-
:apiKey =>
|
226
|
+
:apiKey => @apiKey,
|
222
227
|
:listID => @listID,
|
223
228
|
:title => params[:title],
|
224
229
|
:unsubscribePage => params.fetch(:unsubscribePage, ""),
|