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
@@ -0,0 +1,124 @@
|
|
1
|
+
# Template is defined in soap/default.rb which is automatically generated.
|
2
|
+
# In this file we add additional methods to the Template class.
|
3
|
+
require File.expand_path(File.dirname(__FILE__)) + '/module_mixin'
|
4
|
+
|
5
|
+
|
6
|
+
module Campaigning
|
7
|
+
class Template
|
8
|
+
include ModuleMixin
|
9
|
+
attr_accessor :templateID
|
10
|
+
attr_accessor :name
|
11
|
+
attr_accessor :previewURL
|
12
|
+
attr_accessor :screenshotURL
|
13
|
+
|
14
|
+
def initialize(templateID = nil, name = nil, previewURL = nil, screenshotURL = nil, opts = {})
|
15
|
+
@apiKey = opts[:apiKey] || CAMPAIGN_MONITOR_API_KEY
|
16
|
+
@templateID = templateID
|
17
|
+
@name = name
|
18
|
+
@previewURL = previewURL
|
19
|
+
@screenshotURL = screenshotURL
|
20
|
+
end
|
21
|
+
|
22
|
+
#Creates a new template for a client.
|
23
|
+
#
|
24
|
+
#Available _params_ argument are:
|
25
|
+
# * :clientID - The ID of the client who will owner of the list.
|
26
|
+
# * :templateName - The name of the template. Maximum of 30 characters (will be truncated to 30 characters if longer).
|
27
|
+
# * :htmlPageURL - The URL of the HTML page you have created for the template.
|
28
|
+
# * :zipFileURL - Optional URL of a zip file containing any other files required by the template.
|
29
|
+
# * :screenshotURL - Optional URL of a screenshot of the template. Must be in jpeg format and at least 218 pixels wide.
|
30
|
+
# * :apiKey - optional API key to use to make request. Will use CAMPAIGN_MONITOR_API_KEY if not set.
|
31
|
+
#*Return*:
|
32
|
+
#
|
33
|
+
#*Success*: Upon a successful call, this method will return a Campaigning::Template object representing the newly created
|
34
|
+
#template. The object returned isn't filled with previewURL and screenShotURL once the CampaignMonitor API generate a new
|
35
|
+
#value for that and doesn't return it on te create! method. In order to get a complete filled object call the Template.details
|
36
|
+
#method.
|
37
|
+
#
|
38
|
+
#*Error*: An Exception containing the cause of the error will be raised.
|
39
|
+
def self.create!(params)
|
40
|
+
response = @@soap.createTemplate(
|
41
|
+
:apiKey => params[:apiKey] || CAMPAIGN_MONITOR_API_KEY,
|
42
|
+
:clientID => params[:clientID],
|
43
|
+
:templateName => params[:templateName],
|
44
|
+
:hTMLPageURL => params[:htmlPageURL],
|
45
|
+
:zipFileURL => params[:zipFileURL],
|
46
|
+
:screenshotURL => params[:screenshotURL]
|
47
|
+
)
|
48
|
+
Template.new( handle_response(response.template_CreateResult), params[:templateName], nil, nil, :apiKey=> params[:apiKey] )
|
49
|
+
end
|
50
|
+
|
51
|
+
#Gets the details of a template.
|
52
|
+
#
|
53
|
+
#*Return*:
|
54
|
+
#
|
55
|
+
#*Success*: Upon a successful call, this method will return a Template object, which consists of the template ID,
|
56
|
+
#the template name, a preview URL and a screenshot URL.
|
57
|
+
#
|
58
|
+
#*Error*: An Exception containing the cause of the error will be raised.
|
59
|
+
def details
|
60
|
+
response = @@soap.getTemplateDetail(:apiKey => @apiKey, :templateID => @templateID)
|
61
|
+
handle_response response.template_GetDetailResult
|
62
|
+
end
|
63
|
+
|
64
|
+
#Updates an existing template.
|
65
|
+
#
|
66
|
+
#Available _params_ argument are:
|
67
|
+
# * :templateID - The ID of the template to be updated.
|
68
|
+
# * :templateName - The name of the template. Maximum of 30 characters (will be truncated to 30 characters if longer).
|
69
|
+
# * :htmlPageURL - The URL of the HTML page you have created for the template.
|
70
|
+
# * :zipFileURL - Optional URL of a zip file containing any other files required by the template.
|
71
|
+
# * :screenshotURL - Optional URL of a screenshot of the template. Must be in jpeg format and at least 218 pixels wide.
|
72
|
+
# * :apiKey - optional API key to use to make request. Will use CAMPAIGN_MONITOR_API_KEY if not set.
|
73
|
+
#*Return*:
|
74
|
+
#
|
75
|
+
#*Success*: Upon a successful call, this method will return a Campaigning::Result object wich consists of a +code+ and +message+ fields
|
76
|
+
#containing a successful message.
|
77
|
+
#
|
78
|
+
#*Error*: An Exception containing the cause of the error will be raised.
|
79
|
+
def update!(params)
|
80
|
+
response = @@soap.updateTemplate(
|
81
|
+
:apiKey => params[:apiKey] || CAMPAIGN_MONITOR_API_KEY,
|
82
|
+
:templateID => @templateID,
|
83
|
+
:templateName => params[:templateName],
|
84
|
+
:hTMLPageURL => params[:htmlPageURL],
|
85
|
+
:zipFileURL => params[:zipFileURL],
|
86
|
+
:screenshotURL => params[:screenshotURL]
|
87
|
+
)
|
88
|
+
handle_response response.template_UpdateResult
|
89
|
+
end
|
90
|
+
|
91
|
+
|
92
|
+
#Deletes a template.
|
93
|
+
#
|
94
|
+
#*Return*:
|
95
|
+
#
|
96
|
+
#*Success*: Upon a successful call, this method will return a Campaigning::Result object wich consists of a +code+ and +message+ fields
|
97
|
+
#containing a successful message.
|
98
|
+
#
|
99
|
+
#*Error*: An Exception containing the cause of the error will be raised.
|
100
|
+
def delete!
|
101
|
+
response = Template.delete!(@templateID, :apiKey=> @apiKey)
|
102
|
+
self.templateID, self.name = nil, nil
|
103
|
+
response
|
104
|
+
end
|
105
|
+
|
106
|
+
|
107
|
+
#Deletes a template.
|
108
|
+
#
|
109
|
+
#Aviable _opts_ arguments are:
|
110
|
+
# * :apiKey - optional API key to use to make request. Will use CAMPAIGN_MONITOR_API_KEY if not set.
|
111
|
+
#
|
112
|
+
#*Return*:
|
113
|
+
#
|
114
|
+
#*Success*: Upon a successful call, this method will return a Campaigning::Result object wich consists of a +code+ and +message+ fields
|
115
|
+
#containing a successful message.
|
116
|
+
#
|
117
|
+
#*Error*: An Exception containing the cause of the error will be raised.
|
118
|
+
def self.delete!(template_id, opts={})
|
119
|
+
response = @@soap.deleteTemplate(:apiKey => opts[:apiKey] || CAMPAIGN_MONITOR_API_KEY, :templateID => template_id)
|
120
|
+
handle_response response.template_DeleteResult
|
121
|
+
end
|
122
|
+
|
123
|
+
end
|
124
|
+
end
|
data/test/campaigning_test.rb
CHANGED
@@ -25,12 +25,6 @@ class CampaigningTest < Test::Unit::TestCase
|
|
25
25
|
assert !countries.nil?
|
26
26
|
end
|
27
27
|
|
28
|
-
def test_client_get_all_clients
|
29
|
-
clients = Campaigning::Client.get_all_clients
|
30
|
-
assert clients.length > 0
|
31
|
-
#clients.each{ |c| puts c.clientID + " - " + c.name }
|
32
|
-
end
|
33
|
-
|
34
28
|
def test_client_lists
|
35
29
|
client = Campaigning::Client.find_by_name("Client One Company")
|
36
30
|
assert client.lists.length > 0
|
data/test/client_test.rb
CHANGED
@@ -3,14 +3,27 @@ require 'test_helper'
|
|
3
3
|
# Replace this API key with your own (http://www.campaignmonitor.com/api/)
|
4
4
|
CAMPAIGN_MONITOR_API_KEY = '__PUT_YOUR_API_KEY_HERE__'
|
5
5
|
|
6
|
+
|
6
7
|
class ClientTest < Test::Unit::TestCase
|
7
8
|
|
8
9
|
|
9
10
|
def setup
|
10
11
|
#Campaigning.set_endpoint_url "http://127.0.0.1:8088/mockapiSoap"
|
11
|
-
Campaigning.set_debug_mode(:on)
|
12
|
+
#Campaigning.set_debug_mode(:on)
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_client_get_templates
|
16
|
+
client = Campaigning::Client.get_all_clients.first
|
17
|
+
puts "#{client.name} - #{client.clientID}"
|
18
|
+
puts "Templates: #{client.templates.inspect}"
|
12
19
|
end
|
13
20
|
|
21
|
+
def test_client_get_all_clients
|
22
|
+
clients = Campaigning::Client.get_all_clients
|
23
|
+
assert clients.length > 0
|
24
|
+
#clients.each{ |c| puts c.clientID + " - " + c.name }
|
25
|
+
end
|
26
|
+
|
14
27
|
def test_client_create!
|
15
28
|
client_created = Campaigning::Client.create!(
|
16
29
|
:companyName => "My test clients22",
|
@@ -21,34 +34,34 @@ class ClientTest < Test::Unit::TestCase
|
|
21
34
|
)
|
22
35
|
assert !client_created.clientID.nil?
|
23
36
|
end
|
24
|
-
|
37
|
+
|
25
38
|
def test_client_delete
|
26
39
|
response = Campaigning::Client.delete!(client_created.clientID)
|
27
40
|
assert response.code == 0
|
28
41
|
end
|
29
|
-
|
42
|
+
|
30
43
|
def test_client_delete_itself
|
31
44
|
client = Campaigning::Client.find_by_name("Orange Company 7")
|
32
45
|
client.delete!
|
33
46
|
end
|
34
|
-
|
47
|
+
|
35
48
|
def test_client_segments
|
36
49
|
client = Campaigning::Client.find_by_name("Client One Company")
|
37
50
|
assert client.segments.length > 0
|
38
51
|
end
|
39
|
-
|
40
|
-
|
52
|
+
|
53
|
+
|
41
54
|
def test_find_client_by_name
|
42
55
|
client = Campaigning::Client.find_by_name("Client One Company")
|
43
56
|
assert !client.nil? && client.name == "Client One Company"
|
44
57
|
end
|
45
|
-
|
46
|
-
|
58
|
+
|
59
|
+
|
47
60
|
def test_get_client_campaigns
|
48
61
|
client = Campaigning::Client.find_by_name("Client One Company")
|
49
62
|
puts client.campaigns.inspect
|
50
63
|
end
|
51
|
-
|
64
|
+
|
52
65
|
def test_get_client_details
|
53
66
|
client = Campaigning::Client.find_by_name("Client One Company")
|
54
67
|
# client_details = client.details
|
@@ -70,16 +83,16 @@ class ClientTest < Test::Unit::TestCase
|
|
70
83
|
# Cost per Recipient: #{access_and_billing_details.costPerRecipient} - \n
|
71
84
|
# Design and Span test Fee: #{access_and_billing_details.designAndSpamTestFee} - \n
|
72
85
|
# Access Level: #{access_and_billing_details.accessLevel}"
|
73
|
-
|
86
|
+
|
74
87
|
assert !client.details.nil?
|
75
|
-
|
88
|
+
|
76
89
|
end
|
77
|
-
|
90
|
+
|
78
91
|
def test_get_client_suppression_list
|
79
92
|
client = Campaigning::Client.find_by_name("Client One Company")
|
80
93
|
puts client.suppression_list.inspect
|
81
94
|
end
|
82
|
-
|
95
|
+
|
83
96
|
def test_client_update_access_and_billing!
|
84
97
|
client = Campaigning::Client.find_by_name("Client One Company")
|
85
98
|
response = client.update_access_and_billing!(
|
@@ -106,11 +119,11 @@ class ClientTest < Test::Unit::TestCase
|
|
106
119
|
)
|
107
120
|
assert response.code == 0
|
108
121
|
end
|
109
|
-
|
122
|
+
|
110
123
|
def test_client_find_list_by_name
|
111
124
|
client = Campaigning::Client.find_by_name("Client One Company")
|
112
125
|
list = client.find_list_by_name "My Friends"
|
113
126
|
assert list.nil? == false
|
114
127
|
end
|
115
|
-
|
128
|
+
|
116
129
|
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
# Replace this API key with your own (http://www.campaignmonitor.com/api/)
|
4
|
+
CAMPAIGN_MONITOR_API_KEY = '__PUT_YOUR_API_KEY_HERE__'
|
5
|
+
HTML_PAGE_URL = "http://s4ve.as:80/pages/download/17767/template-with-editor-tags.html"
|
6
|
+
ZIP_FILE_URL = "http://s4ve.as:80/pages/download/17766/Archive.zip"
|
7
|
+
SCREENSHOT_URL = "http://s4ve.as:80/pages/download/17768/screenshot.png"
|
8
|
+
|
9
|
+
class TemplateTest < Test::Unit::TestCase
|
10
|
+
|
11
|
+
|
12
|
+
def setup
|
13
|
+
#Campaigning.set_endpoint_url "http://127.0.0.1:8088/mockapiSoap"
|
14
|
+
Campaigning.set_debug_mode(:on)
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_create!
|
18
|
+
client = Campaigning::Client.get_all_clients.first
|
19
|
+
template_created = Campaigning::Template.create!(
|
20
|
+
:clientID => client.clientID,
|
21
|
+
:templateName => "template_BY_API",
|
22
|
+
:htmlPageURL => HTML_PAGE_URL,
|
23
|
+
:zipFileURL => ZIP_FILE_URL,
|
24
|
+
:screenshotURL => SCREENSHOT_URL
|
25
|
+
)
|
26
|
+
puts template_created.details
|
27
|
+
puts "\n INSPECT: #{template_created.inspect} \n"
|
28
|
+
assert !template_created.nil?
|
29
|
+
end
|
30
|
+
|
31
|
+
# #Should I return a new Template object?
|
32
|
+
# def test_details
|
33
|
+
# client = Campaigning::Client.get_all_clients.first
|
34
|
+
# template = client.templates.first
|
35
|
+
# assert !template.details.nil?
|
36
|
+
# end
|
37
|
+
#
|
38
|
+
# def test_update!
|
39
|
+
# client = Campaigning::Client.get_all_clients.first
|
40
|
+
# template = client.templates.first
|
41
|
+
# result = template.update!(
|
42
|
+
# :templateName => "template_BY_API-updt",
|
43
|
+
# :htmlPageURL => HTML_PAGE_URL,
|
44
|
+
# :zipFileURL => ZIP_FILE_URL,
|
45
|
+
# :screenshotURL => SCREENSHOT_URL
|
46
|
+
# )
|
47
|
+
# assert result.code == 0
|
48
|
+
# end
|
49
|
+
#
|
50
|
+
# def test_delete!
|
51
|
+
# client = Campaigning::Client.get_all_clients.first
|
52
|
+
# template = client.templates.last
|
53
|
+
# result = template.delete!
|
54
|
+
# assert result.code == 0
|
55
|
+
# assert template.templateID == nil
|
56
|
+
#
|
57
|
+
# #deleting template by templateID
|
58
|
+
# result = Campaigning::Template.delete!("d0814103dcee1073ef84516dd96a12c4")
|
59
|
+
# assert result.code == 0
|
60
|
+
# end
|
61
|
+
|
62
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gnumarcelo-campaigning
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.14.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marcelo Menezes
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-09-11 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -46,11 +46,13 @@ files:
|
|
46
46
|
- lib/campaigning/soap/generated/defaultDriver.rb
|
47
47
|
- lib/campaigning/soap/generated/defaultMappingRegistry.rb
|
48
48
|
- lib/campaigning/subscriber.rb
|
49
|
+
- lib/campaigning/template.rb
|
49
50
|
- test/campaign_test.rb
|
50
51
|
- test/campaigning_test.rb
|
51
52
|
- test/client_test.rb
|
52
53
|
- test/list_test.rb
|
53
54
|
- test/subscriber_test.rb
|
55
|
+
- test/template_test.rb
|
54
56
|
- test/test_helper.rb
|
55
57
|
has_rdoc: true
|
56
58
|
homepage: http://github.com/gnumarcelo/campaigning
|
@@ -84,4 +86,5 @@ test_files:
|
|
84
86
|
- test/client_test.rb
|
85
87
|
- test/list_test.rb
|
86
88
|
- test/subscriber_test.rb
|
89
|
+
- test/template_test.rb
|
87
90
|
- test/test_helper.rb
|