netdnarws 0.1.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
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: