send_with_us 0.0.6 → 1.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 +7 -0
- data/CHANGELOG.md +2 -2
- data/README.md +18 -3
- data/lib/send_with_us/api.rb +10 -2
- data/lib/send_with_us/api_request.rb +24 -0
- data/lib/send_with_us/config.rb +2 -2
- data/lib/send_with_us/version.rb +1 -1
- data/test/lib/send_with_us/api_request_test.rb +10 -4
- metadata +59 -79
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: bb22ce6f21aba1a56300d9053b3dcfd32f6a86e8
|
4
|
+
data.tar.gz: c76b1a8d8164876606ad0e557eee35b44feb7f83
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 99ec0c8f81778add459db53d53aa9ca44a88f4f68aa2e980eceee9968352dd51f6c19e5361df9873ec3159c4719545d450f2595d78bbe7a6f594ff871c69019f
|
7
|
+
data.tar.gz: d1772d7fef1f93635b7e4dbd386bba5194dca363a4f9e2c261cb6e5cee6ded9928d35c71c5ec37631a0e36d6296a411b7fe8139eedbc2826ee8ff8dc3db80852
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
+
1.0.0 - Updated for v1_0 of SWU api. Added emails endpoint.
|
1
2
|
0.0.4 - Rewritten to be more gem-like
|
2
3
|
- Accepts configuration via a Rails-style initializer
|
3
4
|
- Test coverage
|
4
5
|
0.0.3 - No idea
|
5
6
|
0.0.2 - Full json post body
|
6
|
-
0.0.1 - First Version
|
7
|
-
|
7
|
+
0.0.1 - First Version
|
data/README.md
CHANGED
@@ -26,7 +26,22 @@ For any Ruby project:
|
|
26
26
|
|
27
27
|
begin
|
28
28
|
obj = SendWithUs::Api.new( api_key: 'YOUR API KEY', debug: true )
|
29
|
-
|
29
|
+
|
30
|
+
# with only required params
|
31
|
+
result = obj.send_with(
|
32
|
+
'email_id',
|
33
|
+
{ address: "user@email.com" },
|
34
|
+
{ company_name: 'TestCo' })
|
35
|
+
puts result
|
36
|
+
|
37
|
+
# with all optional params
|
38
|
+
result = obj.send_with(
|
39
|
+
'email_id',
|
40
|
+
{ name: 'Matt', address: 'recipient@testco.com' },
|
41
|
+
{ company_name: 'TestCo' },
|
42
|
+
{ name: 'Company',
|
43
|
+
address: 'company@testco.com',
|
44
|
+
reply_to: 'info@testco.com' })
|
30
45
|
puts result
|
31
46
|
rescue Exception => e
|
32
47
|
puts "Error - #{e.class.name}: #{e.message}"
|
@@ -45,7 +60,7 @@ with the following:
|
|
45
60
|
In your application code where you want to send an email:
|
46
61
|
|
47
62
|
begin
|
48
|
-
result = SendWithUs::Api.new.send_with('email_id', 'recipient@testco.com', { company_name: 'TestCo' })
|
63
|
+
result = SendWithUs::Api.new.send_with('email_id', { address: 'recipient@testco.com' }, { company_name: 'TestCo' })
|
49
64
|
puts result
|
50
65
|
rescue Exception => e
|
51
66
|
puts "Error - #{e.class.name}: #{e.message}"
|
@@ -55,6 +70,6 @@ In your application code where you want to send an email:
|
|
55
70
|
|
56
71
|
The following errors may be generated:
|
57
72
|
|
58
|
-
SendWithUs::ApiInvalidEndpoint - the target URI is probably incorrect
|
73
|
+
SendWithUs::ApiInvalidEndpoint - the target URI is probably incorrect or email_id is invalid
|
59
74
|
SendWithUs::ApiConnectionRefused - the target URI is probably incorrect
|
60
75
|
SendWithUs::ApiUnknownError - an unhandled HTTP error occurred
|
data/lib/send_with_us/api.rb
CHANGED
@@ -20,11 +20,19 @@ module SendWithUs
|
|
20
20
|
@configuration = SendWithUs::Config.new(settings)
|
21
21
|
end
|
22
22
|
|
23
|
-
def send_with(email_id, to, data = {})
|
24
|
-
|
23
|
+
def send_with(email_id, to, data = {}, from = {})
|
24
|
+
if from.any?
|
25
|
+
payload = { email_id: email_id, recipient: to, sender: from, email_data: data }.to_json
|
26
|
+
else
|
27
|
+
payload = { email_id: email_id, recipient: to, email_data: data }.to_json
|
28
|
+
end
|
25
29
|
SendWithUs::ApiRequest.new(@configuration).send_with(payload)
|
26
30
|
end
|
27
31
|
|
32
|
+
def emails()
|
33
|
+
SendWithUs::ApiRequest.new(@configuration).get(:emails)
|
34
|
+
end
|
35
|
+
|
28
36
|
end
|
29
37
|
|
30
38
|
end
|
@@ -21,6 +21,30 @@ module SendWithUs
|
|
21
21
|
|
22
22
|
@response = http.request(request, payload)
|
23
23
|
|
24
|
+
case @response
|
25
|
+
when Net::HTTPNotFound then
|
26
|
+
raise SendWithUs::ApiInvalidEndpoint, path
|
27
|
+
when Net::HTTPSuccess then
|
28
|
+
puts @response.body if @configuration.debug
|
29
|
+
@response
|
30
|
+
else
|
31
|
+
raise SendWithUs::ApiUnknownError
|
32
|
+
end
|
33
|
+
rescue Errno::ECONNREFUSED
|
34
|
+
raise SendWithUs::ApiConnectionRefused
|
35
|
+
end
|
36
|
+
|
37
|
+
def get(endpoint)
|
38
|
+
path = request_path(endpoint)
|
39
|
+
request = Net::HTTP::Get.new(path, initheader = {'Content-Type' =>'application/json'})
|
40
|
+
request.add_field('X-SWU-API-KEY', @configuration.api_key)
|
41
|
+
|
42
|
+
http = Net::HTTP.new(@configuration.host, @configuration.port)
|
43
|
+
http.use_ssl = use_ssl?
|
44
|
+
http.set_debug_output($stdout) if @configuration.debug
|
45
|
+
|
46
|
+
@response = http.request(request)
|
47
|
+
|
24
48
|
case @response
|
25
49
|
when Net::HTTPNotFound then
|
26
50
|
raise SendWithUs::ApiInvalidEndpoint, path
|
data/lib/send_with_us/config.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module SendWithUs
|
2
2
|
class Config
|
3
3
|
attr_accessor :settings
|
4
|
-
#attr_writer :url, :api_key, :protocol, :host, :port, :
|
4
|
+
#attr_writer :url, :api_key, :protocol, :host, :port, :api_version, :debug
|
5
5
|
|
6
6
|
DEFAULT_URL = 'https://beta.sendwithus.com'
|
7
7
|
|
@@ -14,7 +14,7 @@ module SendWithUs
|
|
14
14
|
protocol: source.scheme,
|
15
15
|
host: source.host,
|
16
16
|
port: source.port,
|
17
|
-
api_version:
|
17
|
+
api_version: '1_0',
|
18
18
|
debug: true
|
19
19
|
}
|
20
20
|
end
|
data/lib/send_with_us/version.rb
CHANGED
@@ -3,9 +3,9 @@ require_relative '../../test_helper'
|
|
3
3
|
class TestApiRequest < MiniTest::Unit::TestCase
|
4
4
|
|
5
5
|
def build_objects
|
6
|
-
@payload
|
7
|
-
@config
|
8
|
-
@request
|
6
|
+
@payload = {}
|
7
|
+
@config = SendWithUs::Config.new( api_version: '1_0', api_key: 'THIS_IS_A_TEST_API_KEY', debug: false )
|
8
|
+
@request = SendWithUs::ApiRequest.new(@config)
|
9
9
|
end
|
10
10
|
|
11
11
|
def test_payload
|
@@ -32,9 +32,15 @@ class TestApiRequest < MiniTest::Unit::TestCase
|
|
32
32
|
assert_raises( SendWithUs::ApiConnectionRefused ) { @request.send_with(@payload) }
|
33
33
|
end
|
34
34
|
|
35
|
+
def test_emails
|
36
|
+
build_objects
|
37
|
+
Net::HTTP.any_instance.stubs(:request).returns(Net::HTTPSuccess.new(1.0, 200, "OK"))
|
38
|
+
assert_instance_of( Net::HTTPSuccess, @request.get(:emails) )
|
39
|
+
end
|
40
|
+
|
35
41
|
def test_request_path
|
36
42
|
build_objects
|
37
|
-
assert_equal( true, @request.send(:request_path, :send) == '/api/
|
43
|
+
assert_equal( true, @request.send(:request_path, :send) == '/api/v1_0/send' )
|
38
44
|
end
|
39
45
|
|
40
46
|
end
|
metadata
CHANGED
@@ -1,75 +1,65 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: send_with_us
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 6
|
10
|
-
version: 0.0.6
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
6
|
+
authors:
|
13
7
|
- Matt Harris
|
14
8
|
- Chris Cummer
|
15
9
|
autorequire:
|
16
10
|
bindir: bin
|
17
11
|
cert_chain: []
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2013-04-22 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
22
15
|
name: rake
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
hash: 3
|
30
|
-
segments:
|
31
|
-
- 0
|
32
|
-
version: "0"
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - '>='
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '0'
|
33
21
|
type: :development
|
34
|
-
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: shoulda
|
37
22
|
prerelease: false
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - '>='
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '0'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: shoulda
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - '>='
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
47
35
|
type: :development
|
48
|
-
version_requirements: *id002
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
name: mocha
|
51
36
|
prerelease: false
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - '>='
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: mocha
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - '>='
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
61
49
|
type: :development
|
62
|
-
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - '>='
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
63
56
|
description: SendWithUs.com Ruby Client
|
64
|
-
email:
|
57
|
+
email:
|
65
58
|
- us@sendwithus.com
|
66
59
|
executables: []
|
67
|
-
|
68
60
|
extensions: []
|
69
|
-
|
70
61
|
extra_rdoc_files: []
|
71
|
-
|
72
|
-
files:
|
62
|
+
files:
|
73
63
|
- .gitignore
|
74
64
|
- .travis.yml
|
75
65
|
- CHANGELOG.md
|
@@ -91,38 +81,28 @@ files:
|
|
91
81
|
- test/test_helper.rb
|
92
82
|
homepage: http://www.sendwithus.com
|
93
83
|
licenses: []
|
94
|
-
|
84
|
+
metadata: {}
|
95
85
|
post_install_message:
|
96
86
|
rdoc_options: []
|
97
|
-
|
98
|
-
require_paths:
|
87
|
+
require_paths:
|
99
88
|
- lib
|
100
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
none: false
|
111
|
-
requirements:
|
112
|
-
- - ">="
|
113
|
-
- !ruby/object:Gem::Version
|
114
|
-
hash: 3
|
115
|
-
segments:
|
116
|
-
- 0
|
117
|
-
version: "0"
|
89
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
118
99
|
requirements: []
|
119
|
-
|
120
100
|
rubyforge_project:
|
121
|
-
rubygems_version:
|
101
|
+
rubygems_version: 2.0.3
|
122
102
|
signing_key:
|
123
|
-
specification_version:
|
103
|
+
specification_version: 4
|
124
104
|
summary: SendWithUs.com Ruby Client
|
125
|
-
test_files:
|
105
|
+
test_files:
|
126
106
|
- test/lib/send_with_us/api_request_test.rb
|
127
107
|
- test/lib/send_with_us/api_test.rb
|
128
108
|
- test/lib/send_with_us/config_test.rb
|