gds-api-adapters 10.17.1 → 11.0.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.
- data/lib/gds_api/router.rb +3 -4
- data/lib/gds_api/test_helpers/router.rb +23 -4
- data/lib/gds_api/version.rb +1 -1
- data/test/router_test.rb +13 -13
- metadata +3 -3
data/lib/gds_api/router.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require_relative 'base'
|
2
|
-
#require_relative 'exceptions'
|
3
2
|
|
4
3
|
class GdsApi::Router < GdsApi::Base
|
5
4
|
|
@@ -25,20 +24,20 @@ class GdsApi::Router < GdsApi::Base
|
|
25
24
|
|
26
25
|
def add_route(path, type, backend_id, options = {})
|
27
26
|
response = put_json!("#{endpoint}/routes", :route => {:incoming_path => path, :route_type => type, :handler => "backend", :backend_id => backend_id})
|
28
|
-
commit_routes
|
27
|
+
commit_routes if options[:commit]
|
29
28
|
response
|
30
29
|
end
|
31
30
|
|
32
31
|
def add_redirect_route(path, type, destination, redirect_type = "permanent", options = {})
|
33
32
|
response = put_json!("#{endpoint}/routes", :route => {:incoming_path => path, :route_type => type, :handler => "redirect",
|
34
33
|
:redirect_to => destination, :redirect_type => redirect_type})
|
35
|
-
commit_routes
|
34
|
+
commit_routes if options[:commit]
|
36
35
|
response
|
37
36
|
end
|
38
37
|
|
39
38
|
def delete_route(path, type, options = {})
|
40
39
|
response = delete_json!("#{endpoint}/routes?incoming_path=#{CGI.escape(path)}&route_type=#{CGI.escape(type)}")
|
41
|
-
commit_routes
|
40
|
+
commit_routes if options[:commit]
|
42
41
|
response
|
43
42
|
end
|
44
43
|
|
@@ -5,6 +5,19 @@ module GdsApi
|
|
5
5
|
module Router
|
6
6
|
ROUTER_API_ENDPOINT = Plek.current.find('router-api')
|
7
7
|
|
8
|
+
def stub_all_router_registration
|
9
|
+
stub_request(:put, %r{\A#{ROUTER_API_ENDPOINT}/backends/[a-z0-9-]+\z})
|
10
|
+
stub_request(:put, "#{ROUTER_API_ENDPOINT}/routes")
|
11
|
+
stub_request(:post, "#{ROUTER_API_ENDPOINT}/routes/commit")
|
12
|
+
end
|
13
|
+
|
14
|
+
def stub_router_backend_registration(backend_id, backend_url)
|
15
|
+
backend = { "backend" => { "backend_url" => backend_url }}
|
16
|
+
stub_http_request(:put, "#{ROUTER_API_ENDPOINT}/backends/#{backend_id}")
|
17
|
+
.with(:body => backend.to_json)
|
18
|
+
.to_return(:status => 201)
|
19
|
+
end
|
20
|
+
|
8
21
|
def stub_route_registration(path, type, backend_id)
|
9
22
|
route = { route: {
|
10
23
|
incoming_path: path,
|
@@ -13,8 +26,9 @@ module GdsApi
|
|
13
26
|
backend_id: backend_id }
|
14
27
|
}
|
15
28
|
|
16
|
-
|
17
|
-
|
29
|
+
register_stub = stub_route_put(route)
|
30
|
+
commit_stub = stub_router_commit
|
31
|
+
[register_stub, commit_stub]
|
18
32
|
end
|
19
33
|
|
20
34
|
def stub_redirect_registration(path, type, destination, redirect_type)
|
@@ -26,13 +40,18 @@ module GdsApi
|
|
26
40
|
redirect_type: redirect_type }
|
27
41
|
}
|
28
42
|
|
29
|
-
|
43
|
+
register_stub = stub_route_put(redirect)
|
44
|
+
commit_stub = stub_router_commit
|
45
|
+
[register_stub, commit_stub]
|
46
|
+
end
|
47
|
+
|
48
|
+
def stub_router_commit
|
30
49
|
stub_http_request(:post, "#{ROUTER_API_ENDPOINT}/routes/commit")
|
31
50
|
end
|
32
51
|
|
33
52
|
private
|
34
53
|
|
35
|
-
def
|
54
|
+
def stub_route_put(route)
|
36
55
|
stub_http_request(:put, "#{ROUTER_API_ENDPOINT}/routes")
|
37
56
|
.with(:body => route.to_json)
|
38
57
|
.to_return(:status => 201)
|
data/lib/gds_api/version.rb
CHANGED
data/test/router_test.rb
CHANGED
@@ -199,17 +199,17 @@ describe GdsApi::Router do
|
|
199
199
|
assert_equal "foo", response.backend_id
|
200
200
|
|
201
201
|
assert_requested(req)
|
202
|
-
|
202
|
+
assert_not_requested(@commit_req)
|
203
203
|
end
|
204
204
|
|
205
|
-
it "should
|
205
|
+
it "should commit the routes when asked to" do
|
206
206
|
req = WebMock.stub_request(:put, "#{@base_api_url}/routes").
|
207
207
|
to_return(:status => 201, :body => {}.to_json, :headers => {"Content-type" => "application/json"})
|
208
208
|
|
209
|
-
@api.add_route("/foo", "exact", "foo", :
|
209
|
+
@api.add_route("/foo", "exact", "foo", :commit => true)
|
210
210
|
|
211
211
|
assert_requested(req)
|
212
|
-
|
212
|
+
assert_requested(@commit_req)
|
213
213
|
end
|
214
214
|
|
215
215
|
it "should raise an error if creating/updating the route fails" do
|
@@ -248,7 +248,7 @@ describe GdsApi::Router do
|
|
248
248
|
assert_equal "/bar", response.redirect_to
|
249
249
|
|
250
250
|
assert_requested(req)
|
251
|
-
|
251
|
+
assert_not_requested(@commit_req)
|
252
252
|
end
|
253
253
|
|
254
254
|
it "should allow creating/updating a temporary redirect route" do
|
@@ -262,17 +262,17 @@ describe GdsApi::Router do
|
|
262
262
|
assert_equal "/bar", response.redirect_to
|
263
263
|
|
264
264
|
assert_requested(req)
|
265
|
-
|
265
|
+
assert_not_requested(@commit_req)
|
266
266
|
end
|
267
267
|
|
268
|
-
it "should
|
268
|
+
it "should commit the routes when asked to" do
|
269
269
|
req = WebMock.stub_request(:put, "#{@base_api_url}/routes").
|
270
270
|
to_return(:status => 201, :body =>{}.to_json, :headers => {"Content-type" => "application/json"})
|
271
271
|
|
272
|
-
@api.add_redirect_route("/foo", "exact", "/bar", "temporary", :
|
272
|
+
@api.add_redirect_route("/foo", "exact", "/bar", "temporary", :commit => true)
|
273
273
|
|
274
274
|
assert_requested(req)
|
275
|
-
|
275
|
+
assert_requested(@commit_req)
|
276
276
|
end
|
277
277
|
|
278
278
|
it "should raise an error if creating/updating the redirect route fails" do
|
@@ -311,18 +311,18 @@ describe GdsApi::Router do
|
|
311
311
|
assert_equal "foo", response.backend_id
|
312
312
|
|
313
313
|
assert_requested(req)
|
314
|
-
|
314
|
+
assert_not_requested(@commit_req)
|
315
315
|
end
|
316
316
|
|
317
|
-
it "should
|
317
|
+
it "should commit the routes when asked to" do
|
318
318
|
req = WebMock.stub_request(:delete, "#{@base_api_url}/routes").
|
319
319
|
with(:query => {"incoming_path" => "/foo", "route_type" => "exact"}).
|
320
320
|
to_return(:status => 200, :body => {}.to_json, :headers => {"Content-type" => "application/json"})
|
321
321
|
|
322
|
-
@api.delete_route("/foo", "exact", :
|
322
|
+
@api.delete_route("/foo", "exact", :commit => true)
|
323
323
|
|
324
324
|
assert_requested(req)
|
325
|
-
|
325
|
+
assert_requested(@commit_req)
|
326
326
|
end
|
327
327
|
|
328
328
|
it "should raise HTTPNotFound if nothing found" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gds-api-adapters
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 11.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -382,7 +382,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
382
382
|
version: '0'
|
383
383
|
segments:
|
384
384
|
- 0
|
385
|
-
hash: -
|
385
|
+
hash: -1694392773198955183
|
386
386
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
387
387
|
none: false
|
388
388
|
requirements:
|
@@ -391,7 +391,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
391
391
|
version: '0'
|
392
392
|
segments:
|
393
393
|
- 0
|
394
|
-
hash: -
|
394
|
+
hash: -1694392773198955183
|
395
395
|
requirements: []
|
396
396
|
rubyforge_project:
|
397
397
|
rubygems_version: 1.8.23
|