email_direct 0.0.1
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/.gitignore +3 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +41 -0
- data/MIT-LICENSE +21 -0
- data/README.md +38 -0
- data/Rakefile +2 -0
- data/email_direct.gemspec +27 -0
- data/examples/email.rb +53 -0
- data/examples/source.rb +26 -0
- data/lib/email_direct.rb +6 -0
- data/lib/email_direct/response.rb +40 -0
- data/lib/email_direct/service_proxy_patch.rb +11 -0
- data/lib/email_direct/soap.rb +891 -0
- data/lib/email_direct/version.rb +3 -0
- data/spec/email_spec.rb +68 -0
- data/spec/response_spec.rb +54 -0
- data/spec/source_spec.rb +58 -0
- data/spec/spec_helper.rb +7 -0
- metadata +166 -0
data/spec/email_spec.rb
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'email_direct/soap'
|
3
|
+
|
4
|
+
describe EmailDirect::SOAP, "#Email_AddWithFields" do
|
5
|
+
|
6
|
+
describe "A valid request without hardcoding parameters (Source,Publications,List,etc) id" do
|
7
|
+
before do
|
8
|
+
@soap = EmailDirect::SOAP.new(ENV['USERNAME'], ENV['PASSWORD'])
|
9
|
+
@soap.debug = true
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should run successfully" do
|
13
|
+
result = @soap.Source_GetAll()
|
14
|
+
result.success?.should == true
|
15
|
+
source_id = result.data["Element"].first["ElementID"]
|
16
|
+
|
17
|
+
# create some publication
|
18
|
+
# result = @soap.Publication_Add("ElementName" => "Publication1", "Description" => "publication 1 info")
|
19
|
+
# result.success?.should == true
|
20
|
+
|
21
|
+
# result = @soap.Publication_Add("ElementName" => "Publication2", "Description" => "publication 2 info")
|
22
|
+
# result.success?.should == true
|
23
|
+
|
24
|
+
result = @soap.Publication_GetAll()
|
25
|
+
result.success?.should == true
|
26
|
+
publication_id1 = result.data["Element"][0]["ElementID"]
|
27
|
+
publication_id2 = result.data["Element"][1]["ElementID"]
|
28
|
+
|
29
|
+
# create some list
|
30
|
+
# result = @soap.List_Add("ElementName" => "List1", "Description" => "List 1 info")
|
31
|
+
# result.success?.should == true
|
32
|
+
|
33
|
+
# result = @soap.List_Add("ElementName" => "List2", "Description" => "List 2 info")
|
34
|
+
# result.success?.should == true
|
35
|
+
|
36
|
+
result = @soap.List_GetAll()
|
37
|
+
result.success?.should == true
|
38
|
+
list_id1 = result.data["Element"][0]["ElementID"]
|
39
|
+
list_id2 = result.data["Element"][1]["ElementID"]
|
40
|
+
|
41
|
+
result = @soap.Email_AddWithFields(
|
42
|
+
"Email" => "someone@test.com",
|
43
|
+
"SourceID" => source_id,
|
44
|
+
"Publications" => [
|
45
|
+
{"int" => publication_id1},
|
46
|
+
{"int" => publication_id2}
|
47
|
+
],
|
48
|
+
"Lists" => [
|
49
|
+
{"int" => list_id1},
|
50
|
+
{"int" => list_id2}
|
51
|
+
],
|
52
|
+
"AutoResponderID" => 0,
|
53
|
+
"Force" => "false",
|
54
|
+
"CustomFields" => [
|
55
|
+
{
|
56
|
+
"FieldName" => "FirstName",
|
57
|
+
"Value" => "Jason"
|
58
|
+
}, {
|
59
|
+
"FieldName" => "LastName",
|
60
|
+
"Value" => "Red"
|
61
|
+
}
|
62
|
+
])
|
63
|
+
result.success?.should == true
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'email_direct'
|
3
|
+
|
4
|
+
describe EmailDirect::Response, "#initialize" do
|
5
|
+
|
6
|
+
describe "A valid response from Source_Add" do
|
7
|
+
before do
|
8
|
+
xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"><soap:Body><Source_AddResponse xmlns=\"http://espapi.net/v1/\"><Source_AddResult xmlns=\"http://espapi.net/v1/components/apiresult\"><Code>10</Code><Message>Invalid AccountName or Password.</Message></Source_AddResult></Source_AddResponse></soap:Body></soap:Envelope>"
|
9
|
+
@response = EmailDirect::Response.new(xml)
|
10
|
+
end
|
11
|
+
it "parse correctly" do
|
12
|
+
@response.success?.should == false
|
13
|
+
@response.code.should == 10
|
14
|
+
@response.message.should == "Invalid AccountName or Password."
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe "A valid element List with Source_GetAll" do
|
19
|
+
before do
|
20
|
+
xml =<<XML
|
21
|
+
<?xml version="1.0" encoding="utf-8"?>
|
22
|
+
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
23
|
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
24
|
+
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
25
|
+
<soap:Body>
|
26
|
+
<Source_GetAllResponse xmlns="http://espapi.net/v1/">
|
27
|
+
<Source_GetAllResult>
|
28
|
+
<Element>
|
29
|
+
<ElementID>1</ElementID>
|
30
|
+
<ElementName>string</ElementName>
|
31
|
+
<Description>string</Description>
|
32
|
+
</Element>
|
33
|
+
<Element>
|
34
|
+
<ElementID>2</ElementID>
|
35
|
+
<ElementName>string</ElementName>
|
36
|
+
<Description>string</Description>
|
37
|
+
</Element>
|
38
|
+
</Source_GetAllResult>
|
39
|
+
</Source_GetAllResponse>
|
40
|
+
</soap:Body>
|
41
|
+
</soap:Envelope>
|
42
|
+
XML
|
43
|
+
@response = EmailDirect::Response.new(xml)
|
44
|
+
end
|
45
|
+
|
46
|
+
it "parse correctly" do
|
47
|
+
@response.success?.should == true
|
48
|
+
@response.data.should == {"Element"=>
|
49
|
+
[{"ElementID"=>"1", "Description"=>"string", "ElementName"=>"string"},
|
50
|
+
{"ElementID"=>"2", "Description"=>"string", "ElementName"=>"string"}]}
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
data/spec/source_spec.rb
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'email_direct/soap'
|
3
|
+
|
4
|
+
describe EmailDirect::SOAP, "#source" do
|
5
|
+
|
6
|
+
describe "A live EmailDirect Source actions" do
|
7
|
+
before do
|
8
|
+
@soap = EmailDirect::SOAP.new(ENV['USERNAME'], ENV['PASSWORD'])
|
9
|
+
#uncomment this line for full debug info
|
10
|
+
#@soap.debug = true
|
11
|
+
end
|
12
|
+
it "interacts with source" do
|
13
|
+
puts "Element should already exists.."
|
14
|
+
element_name = 'RubyTestSource'
|
15
|
+
description = 'a test source item'
|
16
|
+
result = @soap.Source_Add("ElementName" => element_name, "Description" => element_name)
|
17
|
+
result.success?.should == false
|
18
|
+
result.code.should == 402
|
19
|
+
result.message.should == "A Source with this name already exists."
|
20
|
+
|
21
|
+
puts "creating new source.."
|
22
|
+
element_name = 'RubyTestSource2'
|
23
|
+
description = 'a test source item'
|
24
|
+
result = @soap.Source_Add("ElementName" => element_name, "Description" => element_name)
|
25
|
+
result.success?.should == true
|
26
|
+
|
27
|
+
# puts "find the added item"
|
28
|
+
result = @soap.Source_GetAll()
|
29
|
+
result.success?.should == true
|
30
|
+
|
31
|
+
source = result.data["Element"].find {|e| e["ElementName"] == element_name}
|
32
|
+
source.should_not == nil
|
33
|
+
pp source
|
34
|
+
|
35
|
+
|
36
|
+
puts "we're done with the test, delete the test source"
|
37
|
+
result = @soap.Source_Delete("SourceID" => source["ElementID"])
|
38
|
+
result.success?.should == true
|
39
|
+
result.message.should == ""
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe "An invalid authentication error in soap response with Source_GetAll" do
|
44
|
+
before do
|
45
|
+
@soap = EmailDirect::SOAP.new('invalid', 'password')
|
46
|
+
#@soap.debug = true
|
47
|
+
end
|
48
|
+
|
49
|
+
it "fails gracefully" do
|
50
|
+
result = @soap.Source_GetAll()
|
51
|
+
result.success?.should == false
|
52
|
+
result.code.should == 10
|
53
|
+
result.message.should == "Invalid AccountName or Password."
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,166 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: email_direct
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Tucker Connelly
|
14
|
+
- wynst
|
15
|
+
autorequire:
|
16
|
+
bindir: bin
|
17
|
+
cert_chain: []
|
18
|
+
|
19
|
+
date: 2010-10-30 00:00:00 +07:00
|
20
|
+
default_executable:
|
21
|
+
dependencies:
|
22
|
+
- !ruby/object:Gem::Dependency
|
23
|
+
name: serviceproxy
|
24
|
+
prerelease: false
|
25
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ~>
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
hash: 21
|
31
|
+
segments:
|
32
|
+
- 0
|
33
|
+
- 2
|
34
|
+
- 1
|
35
|
+
version: 0.2.1
|
36
|
+
type: :runtime
|
37
|
+
version_requirements: *id001
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: nokogiri
|
40
|
+
prerelease: false
|
41
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - "="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
hash: 5
|
47
|
+
segments:
|
48
|
+
- 1
|
49
|
+
- 4
|
50
|
+
- 1
|
51
|
+
version: 1.4.1
|
52
|
+
type: :runtime
|
53
|
+
version_requirements: *id002
|
54
|
+
- !ruby/object:Gem::Dependency
|
55
|
+
name: builder
|
56
|
+
prerelease: false
|
57
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ~>
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
hash: 15
|
63
|
+
segments:
|
64
|
+
- 2
|
65
|
+
- 1
|
66
|
+
- 2
|
67
|
+
version: 2.1.2
|
68
|
+
type: :runtime
|
69
|
+
version_requirements: *id003
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: activesupport
|
72
|
+
prerelease: false
|
73
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ~>
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
hash: 7
|
79
|
+
segments:
|
80
|
+
- 3
|
81
|
+
- 0
|
82
|
+
- 0
|
83
|
+
version: 3.0.0
|
84
|
+
type: :runtime
|
85
|
+
version_requirements: *id004
|
86
|
+
- !ruby/object:Gem::Dependency
|
87
|
+
name: rspec
|
88
|
+
prerelease: false
|
89
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
91
|
+
requirements:
|
92
|
+
- - ~>
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
hash: 15
|
95
|
+
segments:
|
96
|
+
- 2
|
97
|
+
- 0
|
98
|
+
- 0
|
99
|
+
version: 2.0.0
|
100
|
+
type: :development
|
101
|
+
version_requirements: *id005
|
102
|
+
description: "To use this gem, initialize with your account name and password. All the SOAP calls (found here: http://dev.emaildirect.com/v1/) are functions of the module with the same function name and parameters (minus the credentials). This gem depends on the serviceproxy and activesupport gems."
|
103
|
+
email:
|
104
|
+
- l4nc3r@comcast.net
|
105
|
+
- wynst.uei@gmail.com
|
106
|
+
executables: []
|
107
|
+
|
108
|
+
extensions: []
|
109
|
+
|
110
|
+
extra_rdoc_files: []
|
111
|
+
|
112
|
+
files:
|
113
|
+
- .gitignore
|
114
|
+
- Gemfile
|
115
|
+
- Gemfile.lock
|
116
|
+
- MIT-LICENSE
|
117
|
+
- README.md
|
118
|
+
- Rakefile
|
119
|
+
- email_direct.gemspec
|
120
|
+
- examples/email.rb
|
121
|
+
- examples/source.rb
|
122
|
+
- lib/email_direct.rb
|
123
|
+
- lib/email_direct/response.rb
|
124
|
+
- lib/email_direct/service_proxy_patch.rb
|
125
|
+
- lib/email_direct/soap.rb
|
126
|
+
- lib/email_direct/version.rb
|
127
|
+
- spec/email_spec.rb
|
128
|
+
- spec/response_spec.rb
|
129
|
+
- spec/source_spec.rb
|
130
|
+
- spec/spec_helper.rb
|
131
|
+
has_rdoc: true
|
132
|
+
homepage: http://rubygems.org/gems/email_direct
|
133
|
+
licenses: []
|
134
|
+
|
135
|
+
post_install_message:
|
136
|
+
rdoc_options: []
|
137
|
+
|
138
|
+
require_paths:
|
139
|
+
- lib
|
140
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
141
|
+
none: false
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
hash: 3
|
146
|
+
segments:
|
147
|
+
- 0
|
148
|
+
version: "0"
|
149
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
150
|
+
none: false
|
151
|
+
requirements:
|
152
|
+
- - ">="
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
hash: 3
|
155
|
+
segments:
|
156
|
+
- 0
|
157
|
+
version: "0"
|
158
|
+
requirements: []
|
159
|
+
|
160
|
+
rubyforge_project: email_direct
|
161
|
+
rubygems_version: 1.3.7
|
162
|
+
signing_key:
|
163
|
+
specification_version: 3
|
164
|
+
summary: Used to connect to the EmailDirect SOAP service.
|
165
|
+
test_files: []
|
166
|
+
|