artirix_data_models 0.23.0 → 0.24.0
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/README.md +3 -0
- data/lib/artirix_data_models/daos/basic_model_dao.rb +12 -8
- data/lib/artirix_data_models/gateways/data_gateway.rb +16 -6
- data/lib/artirix_data_models/spec_support/gateway_mock.rb +9 -5
- data/lib/artirix_data_models/spec_support/shared_examples/an_artirix_data_model_dao.rb +12 -2
- data/lib/artirix_data_models/version.rb +1 -1
- data/spec/support/a_finder_enabled_ui_model_dao.rb +10 -1
- data/spec/support/a_search_enabled_ui_model_dao.rb +11 -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: 5297e305a2a81af12a820270e60c3e926abfa36f
|
4
|
+
data.tar.gz: fac1f5b4d525b6dad5bde63d1883884ea99ccf70
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2c68c1d44aeeb2c7252076b3cc7f18134cedd20b5d3aacb8d24b986e85125dadac0212a52e6c06564420fc70bc8db5aebcc001e92e4dac9e14aac6771659f240
|
7
|
+
data.tar.gz: e8f4037838acd44d925970f9254049205a885fa428d3502f1771c52baa26b2c7d0c83dbe541d6c32823bfb852a9a0c16e6ff4d4be0d80551b849de39e99c2c44
|
data/README.md
CHANGED
@@ -327,6 +327,9 @@ end
|
|
327
327
|
|
328
328
|
## Changes
|
329
329
|
|
330
|
+
### 0.24.0
|
331
|
+
- add `headers` to Gateway, to Connection and to DAO methods. It expect a hash of key-value that will be passed to the Faraday call after the body of the request.
|
332
|
+
|
330
333
|
### 0.23.0
|
331
334
|
- DAORegistry now DI'ed into the DAOs and models, by adding `dao_registry_loader` or a direct `dao_registry`.
|
332
335
|
- DAORegistry with support for Identity Map
|
@@ -162,7 +162,7 @@ class ArtirixDataModels::BasicModelDAO
|
|
162
162
|
# PERFORM CALLS #
|
163
163
|
#################
|
164
164
|
|
165
|
-
def perform_get(path, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil)
|
165
|
+
def perform_get(path, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil, headers: nil)
|
166
166
|
g = gateway.presence || preloaded_gateway
|
167
167
|
raise_no_gateway unless g.present?
|
168
168
|
|
@@ -172,11 +172,12 @@ class ArtirixDataModels::BasicModelDAO
|
|
172
172
|
timeout: timeout,
|
173
173
|
fake: fake?,
|
174
174
|
fake_response: fake_response,
|
175
|
-
cache_adaptor: cache_adaptor
|
175
|
+
cache_adaptor: cache_adaptor,
|
176
|
+
headers: headers
|
176
177
|
end
|
177
178
|
|
178
179
|
|
179
|
-
def perform_post(path, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil)
|
180
|
+
def perform_post(path, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil, headers: nil)
|
180
181
|
g = gateway.presence || preloaded_gateway
|
181
182
|
raise_no_gateway unless g.present?
|
182
183
|
|
@@ -186,10 +187,11 @@ class ArtirixDataModels::BasicModelDAO
|
|
186
187
|
timeout: timeout,
|
187
188
|
fake: fake?,
|
188
189
|
fake_response: fake_response,
|
189
|
-
cache_adaptor: cache_adaptor
|
190
|
+
cache_adaptor: cache_adaptor,
|
191
|
+
headers: headers
|
190
192
|
end
|
191
193
|
|
192
|
-
def perform_put(path, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil)
|
194
|
+
def perform_put(path, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil, headers: nil)
|
193
195
|
g = gateway.presence || preloaded_gateway
|
194
196
|
raise_no_gateway unless g.present?
|
195
197
|
|
@@ -199,10 +201,11 @@ class ArtirixDataModels::BasicModelDAO
|
|
199
201
|
timeout: timeout,
|
200
202
|
fake: fake?,
|
201
203
|
fake_response: fake_response,
|
202
|
-
cache_adaptor: cache_adaptor
|
204
|
+
cache_adaptor: cache_adaptor,
|
205
|
+
headers: headers
|
203
206
|
end
|
204
207
|
|
205
|
-
def perform_delete(path, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil)
|
208
|
+
def perform_delete(path, response_adaptor: nil, body: nil, fake_response: nil, cache_adaptor: nil, timeout: nil, gateway: nil, headers: nil)
|
206
209
|
g = gateway.presence || preloaded_gateway
|
207
210
|
raise_no_gateway unless g.present?
|
208
211
|
|
@@ -212,7 +215,8 @@ class ArtirixDataModels::BasicModelDAO
|
|
212
215
|
timeout: timeout,
|
213
216
|
fake: fake?,
|
214
217
|
fake_response: fake_response,
|
215
|
-
cache_adaptor: cache_adaptor
|
218
|
+
cache_adaptor: cache_adaptor,
|
219
|
+
headers: headers
|
216
220
|
end
|
217
221
|
|
218
222
|
# old names
|
@@ -46,6 +46,7 @@ class ArtirixDataModels::DataGateway
|
|
46
46
|
timeout: nil,
|
47
47
|
authorization_bearer: nil,
|
48
48
|
authorization_token_hash: nil,
|
49
|
+
headers: nil,
|
49
50
|
**_ignored_options)
|
50
51
|
|
51
52
|
if fake
|
@@ -59,7 +60,8 @@ class ArtirixDataModels::DataGateway
|
|
59
60
|
json_body: json_body,
|
60
61
|
timeout: timeout,
|
61
62
|
authorization_bearer: authorization_bearer,
|
62
|
-
authorization_token_hash: authorization_token_hash
|
63
|
+
authorization_token_hash: authorization_token_hash,
|
64
|
+
headers: headers
|
63
65
|
end
|
64
66
|
|
65
67
|
else
|
@@ -69,7 +71,8 @@ class ArtirixDataModels::DataGateway
|
|
69
71
|
json_body: json_body,
|
70
72
|
timeout: timeout,
|
71
73
|
authorization_bearer: authorization_bearer,
|
72
|
-
authorization_token_hash: authorization_token_hash
|
74
|
+
authorization_token_hash: authorization_token_hash,
|
75
|
+
headers: headers
|
73
76
|
end
|
74
77
|
|
75
78
|
parse_response result: result,
|
@@ -102,7 +105,8 @@ class ArtirixDataModels::DataGateway
|
|
102
105
|
json_body: true,
|
103
106
|
timeout: nil,
|
104
107
|
authorization_bearer: nil,
|
105
|
-
authorization_token_hash: nil
|
108
|
+
authorization_token_hash: nil,
|
109
|
+
headers: nil)
|
106
110
|
|
107
111
|
pars = {
|
108
112
|
path: path,
|
@@ -110,7 +114,8 @@ class ArtirixDataModels::DataGateway
|
|
110
114
|
json_body: json_body,
|
111
115
|
timeout: timeout,
|
112
116
|
authorization_bearer: authorization_bearer,
|
113
|
-
authorization_token_hash: authorization_token_hash
|
117
|
+
authorization_token_hash: authorization_token_hash,
|
118
|
+
headers: headers
|
114
119
|
}
|
115
120
|
|
116
121
|
response = connect(method, pars)
|
@@ -126,7 +131,8 @@ class ArtirixDataModels::DataGateway
|
|
126
131
|
json_body: true,
|
127
132
|
timeout: nil,
|
128
133
|
authorization_bearer: nil,
|
129
|
-
authorization_token_hash: nil
|
134
|
+
authorization_token_hash: nil,
|
135
|
+
headers: nil)
|
130
136
|
|
131
137
|
timeout = timeout.nil? ? @timeout : timeout
|
132
138
|
authorization_bearer = authorization_bearer.nil? ? @authorization_bearer : authorization_bearer
|
@@ -150,6 +156,10 @@ class ArtirixDataModels::DataGateway
|
|
150
156
|
req.body = body
|
151
157
|
end
|
152
158
|
end
|
159
|
+
|
160
|
+
Array(headers).each do |key, value|
|
161
|
+
req.headers[key.to_s] = value
|
162
|
+
end
|
153
163
|
end
|
154
164
|
rescue Faraday::ConnectionFailed, Faraday::Error::TimeoutError, Errno::ETIMEDOUT => e
|
155
165
|
raise ConnectionError,
|
@@ -257,7 +267,7 @@ class ArtirixDataModels::DataGateway
|
|
257
267
|
|
258
268
|
raise InvalidConnectionError, 'no url given, nor is it present in `config.url`' unless url.present?
|
259
269
|
|
260
|
-
Faraday.new(url: url, request: {params_encoder: Faraday::FlatParamsEncoder}) do |faraday|
|
270
|
+
Faraday.new(url: url, request: { params_encoder: Faraday::FlatParamsEncoder }) do |faraday|
|
261
271
|
faraday.request :url_encoded # form-encode POST params
|
262
272
|
faraday.response :logger # log requests to STDOUT
|
263
273
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# :nocov:
|
2
2
|
def given_gateway_config(connection_url = nil)
|
3
3
|
connection_url ||= 'http://example.com/other'
|
4
|
-
|
4
|
+
|
5
5
|
before(:each) do
|
6
6
|
config = ArtirixDataModels.configuration
|
7
7
|
|
@@ -25,7 +25,8 @@ def mock_gateway_response(response:,
|
|
25
25
|
timeout: nil,
|
26
26
|
authorization_bearer: nil,
|
27
27
|
authorization_token_hash: nil,
|
28
|
-
gateway: nil
|
28
|
+
gateway: nil,
|
29
|
+
headers: nil)
|
29
30
|
gateway ||= ArtirixDataModels::DAORegistry.gateway
|
30
31
|
|
31
32
|
params_hash = {
|
@@ -34,7 +35,8 @@ def mock_gateway_response(response:,
|
|
34
35
|
json_body: json_body,
|
35
36
|
timeout: timeout,
|
36
37
|
authorization_bearer: authorization_bearer,
|
37
|
-
authorization_token_hash: authorization_token_hash
|
38
|
+
authorization_token_hash: authorization_token_hash,
|
39
|
+
headers: headers
|
38
40
|
}
|
39
41
|
|
40
42
|
allow(gateway).to receive(:perform).with(method, params_hash).and_return response
|
@@ -53,7 +55,8 @@ def mock_gateway_not_found_response(method:,
|
|
53
55
|
timeout: nil,
|
54
56
|
authorization_bearer: nil,
|
55
57
|
authorization_token_hash: nil,
|
56
|
-
gateway: nil
|
58
|
+
gateway: nil,
|
59
|
+
headers: nil)
|
57
60
|
|
58
61
|
gateway ||= ArtirixDataModels::DAORegistry.gateway
|
59
62
|
|
@@ -63,7 +66,8 @@ def mock_gateway_not_found_response(method:,
|
|
63
66
|
json_body: json_body,
|
64
67
|
timeout: timeout,
|
65
68
|
authorization_bearer: authorization_bearer,
|
66
|
-
authorization_token_hash: authorization_token_hash
|
69
|
+
authorization_token_hash: authorization_token_hash,
|
70
|
+
headers: headers
|
67
71
|
}
|
68
72
|
|
69
73
|
allow(gateway).to receive(:perform).with(method, params_hash).and_raise ArtirixDataModels::DataGateway::NotFound
|
@@ -43,8 +43,18 @@ shared_examples_for 'an ArtirixDataModel DAO' do
|
|
43
43
|
# mock gateway calls
|
44
44
|
Given(:gateway) do
|
45
45
|
ArtirixDataModels::DataGateway.new.tap do |gateway|
|
46
|
-
|
47
|
-
|
46
|
+
params_hash = {
|
47
|
+
path: nil,
|
48
|
+
body: nil,
|
49
|
+
json_body: true,
|
50
|
+
timeout: nil,
|
51
|
+
authorization_bearer: nil,
|
52
|
+
authorization_token_hash: nil,
|
53
|
+
headers: nil
|
54
|
+
}
|
55
|
+
|
56
|
+
expect(gateway).to receive(:perform).with(:get, params_hash.merge(path: path_full)).and_return(json_full).at_most(:once)
|
57
|
+
expect(gateway).to receive(:perform).with(:get, params_hash.merge(path: path_partial)).and_return(json_partial).at_most(:once)
|
48
58
|
end
|
49
59
|
end
|
50
60
|
|
@@ -19,7 +19,16 @@ shared_examples_for 'a finder enabled UI ModelDAO' do
|
|
19
19
|
# mock gateway calls
|
20
20
|
Given(:gateway) do
|
21
21
|
ArtirixDataModels::DataGateway.new.tap do |gateway|
|
22
|
-
|
22
|
+
expected_params = {
|
23
|
+
path: path_for_find_by,
|
24
|
+
body: nil,
|
25
|
+
json_body: true,
|
26
|
+
timeout: nil,
|
27
|
+
authorization_bearer: nil,
|
28
|
+
authorization_token_hash: nil,
|
29
|
+
headers: nil
|
30
|
+
}
|
31
|
+
expect(gateway).to receive(:perform).with(:get, expected_params).and_return(json_find_by).at_most(:once)
|
23
32
|
end
|
24
33
|
end
|
25
34
|
|
@@ -23,7 +23,17 @@ shared_examples_for 'a search enabled UI ModelDAO' do
|
|
23
23
|
# mock gateway calls
|
24
24
|
Given(:gateway) do
|
25
25
|
ArtirixDataModels::DataGateway.new.tap do |gateway|
|
26
|
-
|
26
|
+
params_hash = {
|
27
|
+
path: path_for_search,
|
28
|
+
body: nil,
|
29
|
+
json_body: true,
|
30
|
+
timeout: nil,
|
31
|
+
authorization_bearer: nil,
|
32
|
+
authorization_token_hash: nil,
|
33
|
+
headers: nil
|
34
|
+
}
|
35
|
+
|
36
|
+
expect(gateway).to receive(:perform).with(:get, params_hash).and_return(json_search).at_most(:once)
|
27
37
|
end
|
28
38
|
end
|
29
39
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: artirix_data_models
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.24.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eduardo Turiño
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|