adsk_auth_service 1.0.22 → 1.0.23

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 993d4581e6e33c6469b150cd01f95a28838be237
4
- data.tar.gz: f8dc565743b01e6311cb581d8d76fea215f1ce35
3
+ metadata.gz: 3831bc4e5b1f8295d772bcddbdaa8a05586b8a6a
4
+ data.tar.gz: 873d24eb28f728615f3e8906dd168eaeaffe2ea7
5
5
  SHA512:
6
- metadata.gz: 5c529dbe99e75bce63603bdef52403405666991cc5b0d411adf28164c10783ae9e7bf3eb93757fe7d23ed72d2bbf68e11a344ce5857079f01144a24d5a155347
7
- data.tar.gz: d287457273e32fc46809579cee347fcf3eeaf712543e343cf6e3d4a6bbd814eddac80a8a1bb25400df6299419c6cbbea66c786ead3a9d0a55f604c2e09de82d3
6
+ metadata.gz: 97bc45d30d1ba40da1c77dfb915982a7275acab6e45f4fef106f426bc8b3da3119fa1f03bdfc222c5bd87f7c67f63df61fe01233bf3097b760219c6409b148a4
7
+ data.tar.gz: c1cedc98cbd4dd56bc6efed8b6a2ef0a56bd10106b54723471b9f94e81353d0572f980bf86bd6eb9f52b70ff88e749e233e2c70cdb7c1e5221cc6086c144231d
data/Gemfile CHANGED
@@ -1,4 +1,5 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gem 'rspec'
4
- gem 'config_service'
4
+ gem 'config_service'
5
+ gem 'faraday'
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'adsk_auth_service'
3
- s.version = '1.0.22'
3
+ s.version = '1.0.23'
4
4
  s.summary = "Autodesk second phase token retrieval"
5
5
  s.description = "A gem for Autodesk 2-phase authentication service."
6
6
  s.authors = ['Linh Chau']
@@ -14,6 +14,7 @@ Gem::Specification.new do |s|
14
14
  s.homepage = 'https://github.com/linhchauatl/adsk_auth_service'
15
15
  s.license = 'MIT'
16
16
  s.add_runtime_dependency 'config_service'
17
+ s.add_runtime_dependency 'faraday'
17
18
 
18
19
  s.add_development_dependency 'rspec', '~> 3.1'
19
20
  end
@@ -25,7 +25,7 @@ class AuthService
25
25
  NetUtil.call_webservices(url,
26
26
  'post',
27
27
  "client_id=#{key}&client_secret=#{secret}&grant_type=client_credentials",
28
- { headers: {'Content-Type' => 'application/x-www-form-urlencoded'} }).body
28
+ { headers: {'Content-Type' => 'application/x-www-form-urlencoded', 'grant_type' => 'client_credentials'} }).body
29
29
  )
30
30
  end
31
31
 
@@ -1,89 +1,94 @@
1
1
  require 'net/https'
2
2
  require 'active_support'
3
+ require 'faraday'
3
4
 
4
5
  class NetUtil
5
6
  READ_TIMEOUT = 600 # 10 minutes
6
7
  RETRY_TIMES = 3
7
8
  WAIT_TIME = 5 # Wait for 5 seconds before retry
8
9
 
10
+ class << self
9
11
 
10
- # This method performs GET, PUT and POST requests to web services
11
- # Call it like this:
12
- # response = NetUtil.call_web_services(url) <= This will perform a GET, with url provided by the caller
13
- # response = NetUtil.call_web_services(url, 'post', doc) <= This will perform a POST, doc is the data to post, can be REXML::Document or XML String
14
- # In the case of GET, the returned XML data is 'response'
15
- # In the case of POST and PUT, the returned XML data is 'response.body'
16
- def NetUtil.call_webservices(url, method_name = 'get', data = '', options = { headers: {'Content-Type' => 'application/json'} })
17
- method_name = method_name.to_s.downcase
18
- try_time = 0
19
- begin
20
- NetUtil.send("do_#{method_name}", {url: url, data: data}.merge(options))
21
- rescue StandardError => error
22
- try_time += 1
23
- if try_time > RETRY_TIMES
24
- puts ("\n#{Time.now} Unrecoverable error in NetUtil.call_webservices: "\
25
- "#{error}\n#{error.backtrace.join("\n")}\n")
26
- # It is an unrecoverable error, throw the exception back, don't suppress it.
27
- raise "Unrecoverable error calling web services.\nURL: #{url}.\nError message: #{error.message}."
12
+ # This method performs GET, PUT and POST requests to web services
13
+ # Call it like this:
14
+ # response = NetUtil.call_web_services(url) <= This will perform a GET, with url provided by the caller
15
+ # response = NetUtil.call_web_services(url, 'post', doc) <= This will perform a POST, doc is the data to post, can be REXML::Document or XML String
16
+ # In the case of GET, the returned XML data is 'response'
17
+ # In the case of POST and PUT, the returned XML data is 'response.body'
18
+ def call_webservices(url, method_name = 'get', data = '', options = { headers: {'Content-Type' => 'application/json'} })
19
+ method_name = method_name.to_s.downcase
20
+ try_time = 0
21
+ begin
22
+ NetUtil.send("do_#{method_name}", {url: url, data: data}.merge(options))
23
+ rescue StandardError => error
24
+ try_time += 1
25
+ if try_time > RETRY_TIMES
26
+ puts ("\n#{Time.now} Unrecoverable error in NetUtil.call_webservices: "\
27
+ "#{error}\n#{error.backtrace.join("\n")}\n")
28
+ # It is an unrecoverable error, throw the exception back, don't suppress it.
29
+ raise "Unrecoverable error calling web services.\nURL: #{url}.\nError message: #{error.message}."
30
+ end
31
+
32
+ puts ("NetUtil.call_webservices #{url}:\nError happens: #{error}. Try #{try_time} time(s).")
33
+ sleep(WAIT_TIME)
34
+ retry
35
+ end
36
+ end
37
+
38
+ def do_get(options)
39
+ do_get_headers = build_header(options)
40
+ params = options[:params] || {}
41
+ do_get_url = options[:url]
42
+ do_get_uri = URI.parse(do_get_url)
43
+ conn = Faraday.new(:url => do_get_url) do |faraday|
44
+ faraday.adapter Faraday.default_adapter
28
45
  end
29
46
 
30
- puts ("NetUtil.call_webservices #{url}:\nError happens: #{error}. Try #{try_time} time(s).")
31
- sleep(WAIT_TIME)
32
- retry
47
+ response = conn.get do |req|
48
+ req.url do_get_uri.path, params
49
+ do_get_headers.each { |key, value| req.headers[key] = value}
50
+ end
33
51
  end
34
- end
35
-
36
- def NetUtil.do_get(options)
37
- # headers = {'Content-Type' => 'text/xml'}
38
- headers = build_header(options)
39
- url = options[:url]
40
- uri = URI.parse(url)
41
- req = Net::HTTP.new(uri.host, uri.port)
42
- req = set_ssl(req, url)
43
- response = req.request_get(uri.path, headers)
44
- return response.body
45
- end
46
-
47
- def NetUtil.do_post(options)
48
- run_p(options, 'post')
49
- end
50
-
51
- def NetUtil.do_put(options)
52
- run_p(options, 'put')
53
- end
54
-
55
-
56
- def NetUtil.run_p(options, method_name)
57
- data = options[:data].to_s
58
52
 
59
- headers = build_header(options)
60
- url = options[:url]
61
- uri = URI.parse(url)
62
- req = Net::HTTP.new(uri.host, uri.port)
63
- req = set_ssl(req, url)
53
+ def do_post(options)
54
+ run_p(options, :post)
55
+ end
64
56
 
65
- req.read_timeout = READ_TIMEOUT
66
- req.open_timeout = READ_TIMEOUT
57
+ def do_put(options)
58
+ run_p(options, :put)
59
+ end
67
60
 
68
- response, body = req.send(method_name, uri.path, data, headers)
69
61
 
70
- return response
71
- end
72
-
73
- def NetUtil.build_header(options)
74
- headers = (options[:headers] || { 'Content-Type' => 'application/json' }).dup
75
- conntent_type = ( headers['Content-Type'].nil? )? 'application/json' : headers['Content-Type']
76
- headers.delete('Content-Type')
77
- {'Content-Type' => conntent_type}.merge(headers)
62
+ def run_p(options, method_name)
63
+ data = options[:data].to_s
64
+
65
+ headers = build_header(options)
66
+ url = options[:url]
67
+ uri = URI.parse(url)
68
+ req = Net::HTTP.new(uri.host, uri.port)
69
+ req = set_ssl(req, url)
70
+
71
+ req.read_timeout = READ_TIMEOUT
72
+ req.open_timeout = READ_TIMEOUT
73
+
74
+ return req.send(method_name, uri.path, data, headers)
75
+ end
76
+
77
+ def build_header(options)
78
+ headers = (options[:headers] || { 'Content-Type' => 'application/json' }).dup
79
+ conntent_type = ( headers['Content-Type'].nil? )? 'application/json' : headers['Content-Type']
80
+ headers.delete('Content-Type')
81
+ {'Content-Type' => conntent_type}.merge(headers)
78
82
 
79
- end
83
+ end
80
84
 
81
- def NetUtil.set_ssl(request, url)
82
- if url.start_with? 'https'
83
- request.use_ssl = true
84
- request.verify_mode = OpenSSL::SSL::VERIFY_NONE
85
+ def set_ssl(request, url)
86
+ if url.start_with? 'https'
87
+ request.use_ssl = true
88
+ request.verify_mode = OpenSSL::SSL::VERIFY_NONE
89
+ end
90
+ request
85
91
  end
86
- request
87
92
  end
88
93
  end
89
94
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adsk_auth_service
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.22
4
+ version: 1.0.23
5
5
  platform: ruby
6
6
  authors:
7
7
  - Linh Chau
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-22 00:00:00.000000000 Z
11
+ date: 2015-05-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: config_service
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: faraday
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rspec
29
43
  requirement: !ruby/object:Gem::Requirement