getresponse 0.3.1 → 0.4
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/README.rdoc +32 -1
- data/lib/api.rb +1 -0
- data/lib/get_response.rb +4 -1
- data/lib/get_response/campaign.rb +35 -0
- data/lib/get_response/follow_up.rb +27 -0
- data/lib/get_response/message.rb +23 -2
- data/lib/get_response/message_proxy.rb +45 -0
- data/lib/get_response/newsletter.rb +15 -0
- metadata +7 -4
data/README.rdoc
CHANGED
@@ -104,4 +104,35 @@ Get campaign domain
|
|
104
104
|
Set campaign domain
|
105
105
|
|
106
106
|
domain = account.domains.first
|
107
|
-
campaign.domain = domain
|
107
|
+
campaign.domain = domain
|
108
|
+
|
109
|
+
Get campaign messages
|
110
|
+
|
111
|
+
# with campaign
|
112
|
+
# campaign - existing campaign
|
113
|
+
messages = campaign.messages
|
114
|
+
newsletters = campaign.messages(:type => "newsletter")
|
115
|
+
|
116
|
+
Get message contents
|
117
|
+
|
118
|
+
# with message
|
119
|
+
# message - existing messsage
|
120
|
+
message.contents["plain"]
|
121
|
+
message.contents["html"]
|
122
|
+
|
123
|
+
Get stats of message
|
124
|
+
|
125
|
+
# message - existing message
|
126
|
+
message.stats
|
127
|
+
|
128
|
+
Delete message
|
129
|
+
|
130
|
+
# message - existing message
|
131
|
+
message.destroy
|
132
|
+
|
133
|
+
Get/set campaign's postal address
|
134
|
+
|
135
|
+
# campaign_one - existing campaign
|
136
|
+
# campaign_two - existing campaign
|
137
|
+
postal_address = campaign_one.postal_address
|
138
|
+
campaign_two.postal_address = postal_address
|
data/lib/api.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
API_KEY='d333e12e5019b6940127e82b499d75a5'
|
data/lib/get_response.rb
CHANGED
@@ -53,4 +53,7 @@ GetResponse.autoload :ContactProxy, "get_response/contact_proxy"
|
|
53
53
|
GetResponse.autoload :FromField, "get_response/from_field"
|
54
54
|
GetResponse.autoload :FromFieldsProxy, "get_response/from_fields_proxy"
|
55
55
|
GetResponse.autoload :Domain, "get_response/domain"
|
56
|
-
GetResponse.autoload :DomainProxy, "get_response/domain_proxy"
|
56
|
+
GetResponse.autoload :DomainProxy, "get_response/domain_proxy"
|
57
|
+
GetResponse.autoload :MessageProxy, "get_response/message_proxy"
|
58
|
+
GetResponse.autoload :Newsletter, "get_response/newsletter"
|
59
|
+
GetResponse.autoload :FollowUp, "get_response/follow_up"
|
@@ -49,6 +49,41 @@ module GetResponse
|
|
49
49
|
new_domain
|
50
50
|
end
|
51
51
|
|
52
|
+
|
53
|
+
# Get messages assigned to this campaign. Optionally conditions <tt>Hash</tt> can be passed, for
|
54
|
+
# example to get campaign messages which are newsletters only.
|
55
|
+
# Example:
|
56
|
+
# @campaign.messages
|
57
|
+
# @campaign.messages(:type => "newsletter")
|
58
|
+
#
|
59
|
+
# returns:: [GetResponse::Message]
|
60
|
+
def messages(conditions = {})
|
61
|
+
conditions[:campaigns]= [@id]
|
62
|
+
@message_proxy = MessageProxy.new @connection
|
63
|
+
@message_proxy.all(conditions)
|
64
|
+
end
|
65
|
+
|
66
|
+
|
67
|
+
# Get campaign's postal address and and postal design (formatting). Postal address is returned
|
68
|
+
# as <tt>Hash</tt> instance.
|
69
|
+
#
|
70
|
+
# returns:: Hash
|
71
|
+
def postal_address
|
72
|
+
@connection.send_request("get_campaign_postal_address", "campaign" => @id)["result"]
|
73
|
+
end
|
74
|
+
|
75
|
+
|
76
|
+
# Set postal address and postal design (formatting) in campaign. If something goes wrong
|
77
|
+
# exception <tt>GetResponse::GetResponseError</tt>.
|
78
|
+
#
|
79
|
+
# postal_address_hash:: Hash
|
80
|
+
# returns:: Hash
|
81
|
+
def postal_address=(postal_address_hash)
|
82
|
+
params = {"campaign" => @id}.merge(postal_address_hash)
|
83
|
+
result = @connection.send_request("set_campaign_postal_address", params)["result"]
|
84
|
+
result if result["updated"].to_i == 1
|
85
|
+
end
|
86
|
+
|
52
87
|
end
|
53
88
|
|
54
89
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module GetResponse
|
2
|
+
|
3
|
+
class FollowUp < Message
|
4
|
+
|
5
|
+
attr_reader :day_of_cycle
|
6
|
+
|
7
|
+
# Delete follow up message.
|
8
|
+
def destroy
|
9
|
+
response = @connection.send_request("delete_follow_up", :message => @id)["result"]
|
10
|
+
response["deleted"].to_i == 1
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
# Method sets a day of cycle for follow-up. Passed value must be integer number. There can't be
|
15
|
+
# more than one follow-up for day.
|
16
|
+
#
|
17
|
+
# value:: Fixnum
|
18
|
+
def day_of_cycle=(value)
|
19
|
+
params = {:message => @id, :day_of_cycle => value}
|
20
|
+
response = @connection.send_request("set_follow_up_cycle", params)["result"]
|
21
|
+
@day_of_cycle = value.to_i if response["updated"].to_i == 1
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
data/lib/get_response/message.rb
CHANGED
@@ -2,15 +2,36 @@ module GetResponse
|
|
2
2
|
|
3
3
|
# Class representa a message in GetResponse
|
4
4
|
class Message
|
5
|
-
attr_reader :id, :type, :subject, :
|
5
|
+
attr_reader :id, :type, :subject, :flags, :created_on
|
6
6
|
|
7
|
-
def initialize(params)
|
7
|
+
def initialize(params, connection)
|
8
8
|
@id = params["id"]
|
9
9
|
@type = params["type"]
|
10
10
|
@subject = params["subject"]
|
11
11
|
@day_of_cycle = params["day_of_cycle"]
|
12
12
|
@flags = params["flags"] || []
|
13
13
|
@created_on = params["created_on"]
|
14
|
+
@connection = connection
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
# Content of message. Every message has two kinds of content: plain and html. Method returns
|
19
|
+
# <tt>Hash</tt> instance with keys <tt>"plain"</tt> and <tt>"html"</tt>.
|
20
|
+
#
|
21
|
+
# returns:: Hash
|
22
|
+
def contents
|
23
|
+
resp = @connection.send_request("get_message_contents", :message => @id)
|
24
|
+
resp["result"]
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
# Stats of message. Method returns <tt>Hash</tt> instance where hey is a date and value is
|
29
|
+
# set of data.
|
30
|
+
#
|
31
|
+
# returns:: Hash
|
32
|
+
def stats
|
33
|
+
resp = @connection.send_request("get_message_stats", :message => @id)
|
34
|
+
resp["result"]
|
14
35
|
end
|
15
36
|
end
|
16
37
|
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module GetResponse
|
2
|
+
|
3
|
+
# Proxy class for message related operations.
|
4
|
+
class MessageProxy
|
5
|
+
|
6
|
+
def initialize(connection)
|
7
|
+
@connection = connection
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
# Get all messages from account. <tt>Hash</tt> with conditions can be optionally passed as
|
12
|
+
# parameter.
|
13
|
+
# Example:
|
14
|
+
# @message_proxy.all
|
15
|
+
# => [<GetResponse::Message ...>, <GetResponse::Message ...>]
|
16
|
+
# @message_proxy.all(:campaigns => ["my_campaign_id"]
|
17
|
+
# => [<GetResponse::Message ...>, <GetResponse::Message ...>]
|
18
|
+
#
|
19
|
+
# conditions:: Hash, empty by default
|
20
|
+
# returns:: Array of GetResponse::Message
|
21
|
+
def all(conditions = {})
|
22
|
+
response = @connection.send_request("get_messages", conditions)
|
23
|
+
|
24
|
+
response["result"].inject([]) do |messages, resp|
|
25
|
+
messages << message_ancestor_object(resp)
|
26
|
+
# messages << Message.new(resp[1].merge("id" => resp[0]), @connection)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
protected
|
32
|
+
|
33
|
+
|
34
|
+
def message_ancestor_object(response)
|
35
|
+
case response[1]["type"]
|
36
|
+
when "newsletter"
|
37
|
+
Newsletter.new(response[1].merge("id" => response[0]), @connection)
|
38
|
+
when "follow-up"
|
39
|
+
FollowUp.new(response[1].merge("id" => response[0]), @connection)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module GetResponse
|
2
|
+
|
3
|
+
class Newsletter < Message
|
4
|
+
|
5
|
+
# Delete newsletter. You can delete only newsletters that have send_on date in future. If you try
|
6
|
+
# to delete exception will be raised.
|
7
|
+
def destroy
|
8
|
+
resp = @connection.send_request("delete_newsletter", :message => @id)["result"]
|
9
|
+
resp["deleted"].to_i == 1
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
|
metadata
CHANGED
@@ -4,9 +4,8 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
8
|
-
|
9
|
-
version: 0.3.1
|
7
|
+
- 4
|
8
|
+
version: "0.4"
|
10
9
|
platform: ruby
|
11
10
|
authors:
|
12
11
|
- Sebastian Nowak
|
@@ -14,7 +13,7 @@ autorequire:
|
|
14
13
|
bindir: bin
|
15
14
|
cert_chain: []
|
16
15
|
|
17
|
-
date: 2011-
|
16
|
+
date: 2011-06-12 00:00:00 +02:00
|
18
17
|
default_executable:
|
19
18
|
dependencies:
|
20
19
|
- !ruby/object:Gem::Dependency
|
@@ -69,15 +68,19 @@ files:
|
|
69
68
|
- lib/get_response/from_field.rb
|
70
69
|
- lib/get_response/domain_proxy.rb
|
71
70
|
- lib/get_response/contact_proxy.rb
|
71
|
+
- lib/get_response/message_proxy.rb
|
72
|
+
- lib/get_response/newsletter.rb
|
72
73
|
- lib/get_response/account.rb
|
73
74
|
- lib/get_response/contact.rb
|
74
75
|
- lib/get_response/campaign_proxy.rb
|
75
76
|
- lib/get_response/campaign.rb
|
76
77
|
- lib/get_response/message.rb
|
77
78
|
- lib/get_response/connection.rb
|
79
|
+
- lib/get_response/follow_up.rb
|
78
80
|
- lib/get_response/from_fields_proxy.rb
|
79
81
|
- lib/get_response/domain.rb
|
80
82
|
- lib/get_response/get_response_error.rb
|
83
|
+
- lib/api.rb
|
81
84
|
- README.rdoc
|
82
85
|
has_rdoc: true
|
83
86
|
homepage: http://dev.getresponse.com
|