network-client 1.0.5 → 1.0.7
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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/network-client/core.rb +24 -15
- data/lib/network-client/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 104f2b9b6881d78ca701ef20d479ab9bccbda5cb
|
4
|
+
data.tar.gz: cf2c922f4e190608a21cc34e6aeac34965992e45
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bcbc6408931008818e5fcb8dca414119bc1679b9329a4413d8447c008b2e0d01839e57cb3092441b46e93c897c2b4eed3cb555ee0d893c87d7d51d8ab3d62dc3
|
7
|
+
data.tar.gz: b60c9f293435e1ea7922dd00d969da17e8cc87ee5f1fb1dd6dba14dff8fa9d3ff80aeecfaf8eadcde1debcfc9d9db68a2a9572bc6b6f80df5bdef5bc2f68e211
|
data/Gemfile.lock
CHANGED
data/lib/network-client/core.rb
CHANGED
@@ -21,29 +21,30 @@ module NetworkClient
|
|
21
21
|
:delete => Net::HTTP::Delete
|
22
22
|
}
|
23
23
|
|
24
|
-
def initialize(endpoint:, tries: 1)
|
24
|
+
def initialize(endpoint:, tries: 1, headers: {})
|
25
25
|
@uri = URI.parse(endpoint)
|
26
26
|
@tries = tries
|
27
27
|
|
28
28
|
set_http_client
|
29
|
+
set_default_headers(headers)
|
29
30
|
set_logger
|
30
31
|
set_response_struct
|
31
32
|
end
|
32
33
|
|
33
|
-
def get(path, params = {})
|
34
|
-
request_json :get, path, params
|
34
|
+
def get(path, params = {}, headers = {})
|
35
|
+
request_json :get, path, params, headers
|
35
36
|
end
|
36
37
|
|
37
|
-
def post(path, params = {})
|
38
|
-
request_json :post, path, params
|
38
|
+
def post(path, params = {}, headers = {})
|
39
|
+
request_json :post, path, params, headers
|
39
40
|
end
|
40
41
|
|
41
|
-
def put(path, params = {})
|
42
|
-
request_json :put, path, params
|
42
|
+
def put(path, params = {}, headers = {})
|
43
|
+
request_json :put, path, params, headers
|
43
44
|
end
|
44
45
|
|
45
|
-
def delete(path, params = {})
|
46
|
-
request_json :delete, path, params
|
46
|
+
def delete(path, params = {}, headers = {})
|
47
|
+
request_json :delete, path, params, headers
|
47
48
|
end
|
48
49
|
|
49
50
|
def set_logger
|
@@ -62,16 +63,21 @@ module NetworkClient
|
|
62
63
|
|
63
64
|
def set_http_client
|
64
65
|
@http = Net::HTTP.new(@uri.host, @uri.port)
|
65
|
-
@http.use_ssl = true
|
66
|
+
@http.use_ssl = @uri.scheme == 'https' ? true : false
|
66
67
|
@http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
67
68
|
end
|
68
69
|
|
70
|
+
def set_default_headers(headers)
|
71
|
+
defaults = { 'accept' => 'application/json', 'Content-Type' => 'application/json' }
|
72
|
+
@default_headers = defaults.merge(headers)
|
73
|
+
end
|
74
|
+
|
69
75
|
def set_response_struct
|
70
76
|
@response_struct = Struct.new(:code, :body)
|
71
77
|
end
|
72
78
|
|
73
|
-
def request_json(http_method, path, params)
|
74
|
-
response = request(http_method, path, params)
|
79
|
+
def request_json(http_method, path, params, headers)
|
80
|
+
response = request(http_method, path, params, headers)
|
75
81
|
body = JSON.parse(response.body)
|
76
82
|
|
77
83
|
@response_struct.new(response.code, body)
|
@@ -81,8 +87,9 @@ module NetworkClient
|
|
81
87
|
response
|
82
88
|
end
|
83
89
|
|
84
|
-
def request(http_method, path, params
|
85
|
-
headers =
|
90
|
+
def request(http_method, path, params, headers)
|
91
|
+
headers = @default_headers.merge(headers)
|
92
|
+
|
86
93
|
case http_method
|
87
94
|
when :get
|
88
95
|
full_path = encode_path_params(path, params)
|
@@ -107,7 +114,7 @@ module NetworkClient
|
|
107
114
|
begin
|
108
115
|
tries_count ||= @tries
|
109
116
|
response = @http.request(request)
|
110
|
-
rescue
|
117
|
+
rescue errors_to_recover_by_retry => error
|
111
118
|
@logger.warn(error.message)
|
112
119
|
(tries_count -= 1).zero? ? raise : retry
|
113
120
|
else
|
@@ -116,6 +123,8 @@ module NetworkClient
|
|
116
123
|
end
|
117
124
|
|
118
125
|
def errors_to_recover_by_retry
|
126
|
+
[Errno::ECONNREFUSED, Net::HTTPServiceUnavailable, Net::ProtocolError, Net::ReadTimeout,
|
127
|
+
Net::OpenTimeout, OpenSSL::SSL::SSLError]
|
119
128
|
end
|
120
129
|
|
121
130
|
def errors_to_recover_by_propogate
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: network-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Abdullah Barrak (abarrak)
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-05-
|
11
|
+
date: 2017-05-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|