netdnarws 0.1.0 → 0.2.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/Gemfile +2 -1
- data/VERSION +1 -1
- data/lib/netdnarws/version.rb +1 -1
- data/lib/netdnarws.rb +55 -13
- data/netdnarws.gemspec +2 -1
- metadata +19 -3
data/Gemfile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1
|
1
|
+
0.2.1
|
data/lib/netdnarws/version.rb
CHANGED
data/lib/netdnarws.rb
CHANGED
@@ -1,6 +1,16 @@
|
|
1
|
-
require '
|
1
|
+
require 'signet/oauth_1/client'
|
2
|
+
require 'addressable/uri'
|
3
|
+
require 'faraday/connection'
|
2
4
|
require 'json'
|
3
5
|
|
6
|
+
module Faraday
|
7
|
+
class Request
|
8
|
+
def url path, params=nil
|
9
|
+
self.path = path
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
4
14
|
module NetDNARWS
|
5
15
|
class NetDNA
|
6
16
|
attr_accessor :client
|
@@ -9,8 +19,11 @@ module NetDNARWS
|
|
9
19
|
@company_alias = company_alias
|
10
20
|
@server = server
|
11
21
|
@secure_connection = secure_connection
|
12
|
-
@
|
13
|
-
|
22
|
+
@request_signer = Signet::OAuth1::Client.new(
|
23
|
+
:client_credential_key => key,
|
24
|
+
:client_credential_secret => secret,
|
25
|
+
:two_legged => true
|
26
|
+
)
|
14
27
|
end
|
15
28
|
|
16
29
|
def _connection_type
|
@@ -18,8 +31,19 @@ module NetDNARWS
|
|
18
31
|
"https"
|
19
32
|
end
|
20
33
|
|
21
|
-
def
|
22
|
-
|
34
|
+
def _encode_params values
|
35
|
+
uri = Addressable::URI.new
|
36
|
+
uri.query_values = values
|
37
|
+
uri.query
|
38
|
+
end
|
39
|
+
|
40
|
+
def _get_url uri, attributes
|
41
|
+
url = "#{_connection_type}://#{@server}/#{@company_alias}#{uri}"
|
42
|
+
if not attributes.empty?
|
43
|
+
url += "?#{_encode_params(attributes[0])}"
|
44
|
+
end
|
45
|
+
|
46
|
+
url
|
23
47
|
end
|
24
48
|
|
25
49
|
def _response_as_json method, uri, options={}, *attributes
|
@@ -27,17 +51,31 @@ module NetDNARWS
|
|
27
51
|
puts "Making #{method.upcase} request to #{_get_url uri}"
|
28
52
|
end
|
29
53
|
|
30
|
-
|
54
|
+
request_options = {
|
55
|
+
:uri => _get_url(uri, attributes),
|
56
|
+
:method => method
|
57
|
+
}
|
58
|
+
|
59
|
+
request_options[:body] = _encode_params(attributes[0]) if options[:body]
|
60
|
+
request = @request_signer.generate_authenticated_request(request_options)
|
61
|
+
connection = Faraday::Connection.new
|
62
|
+
|
31
63
|
begin
|
32
|
-
|
33
|
-
|
34
|
-
|
64
|
+
response = connection.send method do |req|
|
65
|
+
req.url _get_url(uri, attributes)
|
66
|
+
req.headers = request.headers
|
67
|
+
req.body = request.body if options[:body]
|
68
|
+
end
|
69
|
+
|
70
|
+
response_json = JSON.load(response.env[:body])
|
71
|
+
|
72
|
+
if not (100..399).include? response.env[:status]
|
35
73
|
error_message = response_json['error']['message']
|
36
|
-
raise Exception.new("#{response.
|
74
|
+
raise Exception.new("#{response.env[:status]}: #{error_message}")
|
37
75
|
end
|
38
76
|
rescue TypeError
|
39
77
|
raise Exception.new(
|
40
|
-
"#{response.
|
78
|
+
"#{response.env[:status]}: No information supplied by the server"
|
41
79
|
)
|
42
80
|
end
|
43
81
|
|
@@ -45,18 +83,22 @@ module NetDNARWS
|
|
45
83
|
end
|
46
84
|
|
47
85
|
def get uri, options={}
|
86
|
+
options[:body] = false
|
48
87
|
self._response_as_json 'get', uri, options
|
49
88
|
end
|
50
89
|
|
51
90
|
def post uri, data={}, options={}
|
52
|
-
|
91
|
+
options[:body] = true
|
92
|
+
self._response_as_json 'post', uri, options, data
|
53
93
|
end
|
54
94
|
|
55
95
|
def put uri, data={}, options={}
|
56
|
-
|
96
|
+
options[:body] = true
|
97
|
+
self._response_as_json 'put', uri, options, data
|
57
98
|
end
|
58
99
|
|
59
100
|
def delete uri, options={}
|
101
|
+
options[:body] = false
|
60
102
|
self._response_as_json 'delete', uri, options
|
61
103
|
end
|
62
104
|
end
|
data/netdnarws.gemspec
CHANGED
@@ -12,5 +12,6 @@ Gem::Specification.new do |gem|
|
|
12
12
|
gem.description = %Q{A Rest Client For NetDNA Rest Web Services}
|
13
13
|
gem.email = "devteam@netdna.com"
|
14
14
|
gem.authors = ["NetDNA Developer Team"]
|
15
|
-
gem.add_dependency '
|
15
|
+
gem.add_dependency 'addressable'
|
16
|
+
gem.add_dependency 'signet'
|
16
17
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: netdnarws
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: 0.2.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,10 +9,26 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-08-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: addressable
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: signet
|
16
32
|
requirement: !ruby/object:Gem::Requirement
|
17
33
|
none: false
|
18
34
|
requirements:
|