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 CHANGED
@@ -1,4 +1,5 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gem "oauth"
3
+ gem "addressable"
4
+ gem "signet"
4
5
  gemspec
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.2.1
@@ -1,3 +1,3 @@
1
1
  module NetDNARWS
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.1"
3
3
  end
data/lib/netdnarws.rb CHANGED
@@ -1,6 +1,16 @@
1
- require 'oauth'
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
- @client = OAuth::Consumer.new(key, secret,
13
- :site => "#{_connection_type}://#{server}")
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 _get_url uri
22
- "#{_connection_type}://#{@server}/#{@company_alias}#{uri}"
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
- response = @client.request method, _get_url(uri), nil, options, attributes
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
- response_json = JSON.parse(response.body)
33
- if not ((100..399).map { |e| e.to_s }).include? response.code
34
- puts response.code
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.code}: #{error_message}")
74
+ raise Exception.new("#{response.env[:status]}: #{error_message}")
37
75
  end
38
76
  rescue TypeError
39
77
  raise Exception.new(
40
- "#{response.code}: No information supplied by the server"
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
- self._response_as_json 'post', uri, options, [data]
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
- self._response_as_json 'put', uri, options, [data]
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 'oauth'
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.0
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-07-20 00:00:00.000000000 Z
12
+ date: 2012-08-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: oauth
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: