content_gateway 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 07723d5fea288ca91c4f1da7436168e83daa8fea
4
- data.tar.gz: d66d49a1846de645acce9b3a2363056c16992842
3
+ metadata.gz: 85901cee0dfecc54b74a60365e9edf1dfe7bf5b5
4
+ data.tar.gz: 331f4a25895c2e6a4cb58ea8db3cba631655efa6
5
5
  SHA512:
6
- metadata.gz: 45f744929408bf9b41b94a212c9320a152dd9b0a8baa7ed733eb12bb1eb9d9e21de47179d6eedf522a9c30c886740f8ae6ccfe8bba979c720e86f783afab6839
7
- data.tar.gz: 39795c45b0a7fcc25619aea6df33cad3d360604b2984a44ac40bd842ff8aaf28e3c35e0350b405a720a802af8f06e30efdab41d8f861a0e0ac78e91fdcf8a957
6
+ metadata.gz: 47240429d16d7908ec2bb106ff39eb2928bfa0f5ec57cd741ff16cb8e049011f3c459916699e14daa1d0f1cb462e074461104fed5c0188e1cc580ca9b1b147cf
7
+ data.tar.gz: 28e5febf0e1ebeafc0218e5e7c14a54b0d2c9dc4b79d61a9f53380e821b446d69b37c47baa18039a7149cc535df48b5e9de251673cb58443281a14236405a415
data/Changelog CHANGED
@@ -1,3 +1,7 @@
1
+ 2014-11-06 [0.2.1]
2
+ * Fix: Do not send connection parameters to url generator. Closes #2
3
+ * Fix: Send http headers to request object. Closes #3
4
+
1
5
  2014-10-31 [0.2.0]
2
6
 
3
7
  * Adding ssl support in requests
@@ -8,11 +8,8 @@ module ContentGateway
8
8
  end
9
9
 
10
10
  def get(resource_path, params = {})
11
- timeout = params.delete :timeout
12
- expires_in = params.delete :expires_in
13
- stale_expires_in = params.delete :stale_expires_in
14
- skip_cache = params.delete :skip_cache
15
- headers = (params.delete :headers) || @default_params[:headers]
11
+ aux_params = remove_aux_parameters! params
12
+ headers = aux_params.delete :headers
16
13
 
17
14
  url = self.generate_url(resource_path, params)
18
15
 
@@ -20,35 +17,73 @@ module ContentGateway
20
17
  data = { method: :get, url: url }.tap do |h|
21
18
  h[:headers] = headers if headers.present?
22
19
  end
23
- request_params = { skip_cache: skip_cache, expires_in: expires_in, stale_expires_in: stale_expires_in, timeout: timeout }.merge(params)
20
+
21
+ request_params = aux_params.merge(params)
24
22
  send_request(data, request_params)
25
23
  end
26
24
  end
27
25
 
28
26
  def post(resource_path, params = {})
29
- payload = params.delete :payload
27
+ aux_params = remove_aux_parameters! params
28
+ headers = aux_params.delete :headers
29
+ payload = aux_params.delete :payload
30
+ timeout = aux_params.delete :timeout
31
+ ssl_certificate = aux_params.delete :ssl_certificate
32
+
30
33
  url = self.generate_url(resource_path, params)
31
34
 
32
35
  measure("POST - #{url}") do
33
- send_request({ method: :post, url: url, payload: payload }, params)
36
+ data = { method: :post, url: url, payload: payload }.tap do |h|
37
+ h[:headers] = headers if headers.present?
38
+ end
39
+
40
+ request_params = { timeout: timeout }.merge(params).tap do |h|
41
+ h[:ssl_certificate] = ssl_certificate unless ssl_certificate.nil?
42
+ end
43
+ send_request(data, request_params)
34
44
  end
35
45
  end
36
46
 
37
47
  def put(resource_path, params = {})
38
- payload = params.delete :payload
48
+ aux_params = remove_aux_parameters! params
49
+ headers = aux_params.delete :headers
50
+ payload = aux_params.delete :payload
51
+ timeout = aux_params.delete :timeout
52
+ ssl_certificate = aux_params.delete :ssl_certificate
53
+
39
54
  url = self.generate_url(resource_path, params)
40
55
 
41
56
  measure("PUT - #{url}") do
42
- send_request({ method: :put, url: url, payload: payload }, params)
57
+ data = { method: :put, url: url, payload: payload }.tap do |h|
58
+ h[:headers] = headers if headers.present?
59
+ end
60
+
61
+ request_params = { timeout: timeout }.merge(params).tap do |h|
62
+ h[:ssl_certificate] = ssl_certificate unless ssl_certificate.nil?
63
+ end
64
+
65
+ send_request(data, request_params)
43
66
  end
44
67
  end
45
68
 
46
69
  def delete(resource_path, params = {})
47
- payload = params.delete :payload
70
+ aux_params = remove_aux_parameters! params
71
+ headers = aux_params.delete :headers
72
+ timeout = aux_params.delete :timeout
73
+ ssl_certificate = aux_params.delete :ssl_certificate
74
+
48
75
  url = self.generate_url(resource_path, params)
49
76
 
50
77
  measure("DELETE - #{url}") do
51
- send_request({ method: :delete, url: url, payload: payload }, params)
78
+ data = { method: :delete, url: url }.tap do |h|
79
+ h[:headers] = headers if headers.present?
80
+ end
81
+
82
+ request_params = { timeout: timeout }.tap do |h|
83
+ h[:ssl_certificate] = ssl_certificate unless ssl_certificate.nil?
84
+ end
85
+
86
+ send_request(data, request_params)
52
87
  end
53
88
  end
54
89
 
@@ -74,6 +109,22 @@ module ContentGateway
74
109
 
75
110
  private
76
111
 
112
+ def remove_aux_parameters! params
113
+ aux_params = params.select do |k, v|
114
+ [:timeout, :expires_in, :stale_expires_in, :skip_cache, :headers, :payload, :ssl_certificate].include? k
115
+ end
116
+
117
+ aux_params.tap do |p|
118
+ p[:headers] = p[:headers] || @default_params[:headers]
119
+ end
120
+
121
+ params.delete_if do |k,v|
122
+ aux_params.keys.include? k
123
+ end
124
+
125
+ aux_params
126
+ end
127
+
77
128
  def send_request(request_data, params = {})
78
129
  method = request_data[:method] || :get
79
130
  url = request_data[:url]
@@ -1,3 +1,3 @@
1
1
  module ContentGateway
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -290,27 +290,27 @@ describe ContentGateway::Gateway do
290
290
  end
291
291
 
292
292
  it "should do request with http post" do
293
- stub_request(method: :post, url: resource_url, proxy: config.proxy, payload: payload)
293
+ stub_request(method: :post, url: resource_url, proxy: config.proxy, payload: payload, headers: headers)
294
294
  gateway.post resource_path, payload: payload
295
295
  end
296
296
 
297
297
  it "should raise NotFound exception on 404 error" do
298
- stub_request_with_error({ method: :post, url: resource_url, proxy: config.proxy, payload: payload }, RestClient::ResourceNotFound.new)
298
+ stub_request_with_error({ method: :post, url: resource_url, proxy: config.proxy, payload: payload, headers: headers }, RestClient::ResourceNotFound.new)
299
299
  expect { gateway.post resource_path, payload: payload }.to raise_error ContentGateway::ResourceNotFound
300
300
  end
301
301
 
302
302
  it "should raise UnprocessableEntity exception on 401 error" do
303
- stub_request_with_error({ method: :post, url: resource_url, proxy: config.proxy, payload: payload }, RestClient::Unauthorized.new)
303
+ stub_request_with_error({ method: :post, url: resource_url, proxy: config.proxy, payload: payload, headers: headers }, RestClient::Unauthorized.new)
304
304
  expect { gateway.post resource_path, payload: payload }.to raise_error(ContentGateway::UnauthorizedError)
305
305
  end
306
306
 
307
307
  it "should raise Forbidden exception on 403 error" do
308
- stub_request_with_error({ method: :post, url: resource_url, proxy: config.proxy, payload: payload }, RestClient::Forbidden.new)
308
+ stub_request_with_error({ method: :post, url: resource_url, proxy: config.proxy, payload: payload, headers: headers }, RestClient::Forbidden.new)
309
309
  expect { gateway.post resource_path, payload: payload }.to raise_error(ContentGateway::Forbidden)
310
310
  end
311
311
 
312
312
  it "should raise ConnectionFailure exception on 500 error" do
313
- stub_request_with_error({ method: :post, url: resource_url, proxy: config.proxy, payload: payload }, SocketError.new)
313
+ stub_request_with_error({ method: :post, url: resource_url, proxy: config.proxy, payload: payload, headers: headers }, SocketError.new)
314
314
  expect { gateway.post resource_path, payload: payload }.to raise_error ContentGateway::ConnectionFailure
315
315
  end
316
316
  end
@@ -325,27 +325,27 @@ describe ContentGateway::Gateway do
325
325
  end
326
326
 
327
327
  it "should do request with http post" do
328
- stub_request(method: :delete, url: resource_url, proxy: config.proxy, payload: payload)
328
+ stub_request(method: :delete, url: resource_url, proxy: config.proxy, headers: headers)
329
329
  gateway.delete resource_path, payload: payload
330
330
  end
331
331
 
332
332
  it "should raise NotFound exception on 404 error" do
333
- stub_request_with_error({ method: :delete, url: resource_url, proxy: config.proxy, payload: payload }, RestClient::ResourceNotFound.new)
333
+ stub_request_with_error({ method: :delete, url: resource_url, proxy: config.proxy, headers: headers }, RestClient::ResourceNotFound.new)
334
334
  expect { gateway.delete resource_path, payload: payload }.to raise_error ContentGateway::ResourceNotFound
335
335
  end
336
336
 
337
337
  it "should raise UnprocessableEntity exception on 401 error" do
338
- stub_request_with_error({ method: :delete, url: resource_url, proxy: config.proxy, payload: payload }, RestClient::Unauthorized.new)
338
+ stub_request_with_error({ method: :delete, url: resource_url, proxy: config.proxy, headers: headers }, RestClient::Unauthorized.new)
339
339
  expect { gateway.delete resource_path, payload: payload }.to raise_error(ContentGateway::UnauthorizedError)
340
340
  end
341
341
 
342
342
  it "should raise Forbidden exception on 403 error" do
343
- stub_request_with_error({ method: :delete, url: resource_url, proxy: config.proxy, payload: payload }, RestClient::Forbidden.new)
343
+ stub_request_with_error({ method: :delete, url: resource_url, proxy: config.proxy, headers: headers }, RestClient::Forbidden.new)
344
344
  expect { gateway.delete resource_path, payload: payload }.to raise_error(ContentGateway::Forbidden)
345
345
  end
346
346
 
347
347
  it "should raise ConnectionFailure exception on 500 error" do
348
- stub_request_with_error({ method: :delete, url: resource_url, proxy: config.proxy, payload: payload }, SocketError.new)
348
+ stub_request_with_error({ method: :delete, url: resource_url, proxy: config.proxy, headers: headers }, SocketError.new)
349
349
  expect { gateway.delete resource_path, payload: payload }.to raise_error ContentGateway::ConnectionFailure
350
350
  end
351
351
  end
@@ -360,27 +360,27 @@ describe ContentGateway::Gateway do
360
360
  end
361
361
 
362
362
  it "should do request with http put" do
363
- stub_request(method: :put, url: resource_url, proxy: config.proxy, payload: payload)
363
+ stub_request(method: :put, url: resource_url, proxy: config.proxy, payload: payload, headers: headers)
364
364
  gateway.put resource_path, payload: payload
365
365
  end
366
366
 
367
367
  it "should raise NotFound exception on 404 error" do
368
- stub_request_with_error({ method: :put, url: resource_url, proxy: config.proxy, payload: payload }, RestClient::ResourceNotFound.new)
368
+ stub_request_with_error({ method: :put, url: resource_url, proxy: config.proxy, payload: payload, headers: headers }, RestClient::ResourceNotFound.new)
369
369
  expect { gateway.put resource_path, payload: payload }.to raise_error ContentGateway::ResourceNotFound
370
370
  end
371
371
 
372
372
  it "should raise UnprocessableEntity exception on 422 error" do
373
- stub_request_with_error({ method: :put, url: resource_url, proxy: config.proxy, payload: payload }, RestClient::UnprocessableEntity)
373
+ stub_request_with_error({ method: :put, url: resource_url, proxy: config.proxy, payload: payload, headers: headers }, RestClient::UnprocessableEntity)
374
374
  expect { gateway.put resource_path, payload: payload }.to raise_error ContentGateway::ValidationError
375
375
  end
376
376
 
377
377
  it "should raise Forbidden exception on 403 error" do
378
- stub_request_with_error({ method: :put, url: resource_url, proxy: config.proxy, payload: payload }, RestClient::Forbidden.new)
378
+ stub_request_with_error({ method: :put, url: resource_url, proxy: config.proxy, payload: payload, headers: headers }, RestClient::Forbidden.new)
379
379
  expect { gateway.put resource_path, payload: payload }.to raise_error(ContentGateway::Forbidden)
380
380
  end
381
381
 
382
382
  it "should raise ConnectionFailure exception on 500 error" do
383
- stub_request_with_error({ method: :put, url: resource_url, proxy: config.proxy, payload: payload }, SocketError.new)
383
+ stub_request_with_error({ method: :put, url: resource_url, proxy: config.proxy, payload: payload, headers: headers }, SocketError.new)
384
384
  expect { gateway.put resource_path, payload: payload }.to raise_error ContentGateway::ConnectionFailure
385
385
  end
386
386
  end
@@ -13,10 +13,15 @@ describe ContentGateway::Gateway do
13
13
  let(:cache) { double("cache", use?: false, status: "HIT") }
14
14
  let(:request) { double("request", execute: data) }
15
15
  let(:data) { '{"param": "value"}' }
16
- let(:cache_params) { { timeout: 2, expires_in: 30, stale_expires_in: 180, skip_cache: false } }
16
+ let(:cache_params) { { timeout: 2, expires_in: 30, stale_expires_in: 180, skip_cache: false, ssl_certificate: {ssl_client_cert: "test", ssl_client_key: "test"} } }
17
+ let(:connection_params) {{ timeout: 2, ssl_certificate: {ssl_client_cert: "test", ssl_client_key: "test"} }}
17
18
 
18
19
  before do
19
- allow(url_generator).to receive(:generate).and_return("url")
20
+ allow(File).to receive(:read).with("test").and_return("cert_content")
21
+ allow(OpenSSL::X509::Certificate).to receive(:new).with("cert_content").and_return("cert")
22
+ allow(OpenSSL::PKey::RSA).to receive(:new).with("cert_content").and_return("key")
23
+
24
+ expect(url_generator).to receive(:generate).with(path, {}).and_return("url")
20
25
  end
21
26
 
22
27
  describe "GET method" do
@@ -48,11 +53,11 @@ describe ContentGateway::Gateway do
48
53
  before do
49
54
  expect(ContentGateway::Request).
50
55
  to receive(:new).
51
- with(:post, "url", nil, payload, config.proxy, cache_params).
56
+ with(:post, "url", nil, payload, config.proxy, connection_params).
52
57
  and_return(request)
53
58
  expect(ContentGateway::Cache).
54
59
  to receive(:new).
55
- with(config, "url", :post, cache_params).
60
+ with(config, "url", :post, connection_params).
56
61
  and_return(cache)
57
62
  end
58
63
 
@@ -73,11 +78,11 @@ describe ContentGateway::Gateway do
73
78
  before do
74
79
  expect(ContentGateway::Request).
75
80
  to receive(:new).
76
- with(:put, "url", nil, payload, config.proxy, cache_params).
81
+ with(:put, "url", nil, payload, config.proxy, connection_params).
77
82
  and_return(request)
78
83
  expect(ContentGateway::Cache).
79
84
  to receive(:new).
80
- with(config, "url", :put, cache_params).
85
+ with(config, "url", :put, connection_params).
81
86
  and_return(cache)
82
87
  end
83
88
 
@@ -98,11 +103,11 @@ describe ContentGateway::Gateway do
98
103
  before do
99
104
  expect(ContentGateway::Request).
100
105
  to receive(:new).
101
- with(:delete, "url", nil, payload, config.proxy, cache_params).
106
+ with(:delete, "url", nil, nil, config.proxy, connection_params).
102
107
  and_return(request)
103
108
  expect(ContentGateway::Cache).
104
109
  to receive(:new).
105
- with(config, "url", :delete, cache_params).
110
+ with(config, "url", :delete, connection_params).
106
111
  and_return(cache)
107
112
  end
108
113
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: content_gateway
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Túlio Ornelas
@@ -14,7 +14,7 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2014-10-31 00:00:00.000000000 Z
17
+ date: 2014-11-06 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: activesupport
@@ -155,7 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
155
155
  version: '0'
156
156
  requirements: []
157
157
  rubyforge_project:
158
- rubygems_version: 2.1.11
158
+ rubygems_version: 2.2.2
159
159
  signing_key:
160
160
  specification_version: 4
161
161
  summary: Content Gateway