gds-api-adapters 16.2.0 → 16.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -35,6 +35,12 @@ class GdsApi::Router < GdsApi::Base
35
35
  response
36
36
  end
37
37
 
38
+ def add_gone_route(path, type, options = {})
39
+ response = put_json!("#{endpoint}/routes", :route => {:incoming_path => path, :route_type => type, :handler => "gone"})
40
+ commit_routes if options[:commit]
41
+ response
42
+ end
43
+
38
44
  def delete_route(path, type, options = {})
39
45
  response = delete_json!("#{endpoint}/routes?incoming_path=#{CGI.escape(path)}&route_type=#{CGI.escape(type)}")
40
46
  commit_routes if options[:commit]
@@ -1,3 +1,3 @@
1
1
  module GdsApi
2
- VERSION = '16.2.0'
2
+ VERSION = '16.3.0'
3
3
  end
data/test/router_test.rb CHANGED
@@ -299,6 +299,55 @@ describe GdsApi::Router do
299
299
  end
300
300
  end
301
301
 
302
+ describe "#add_gone_route" do
303
+ it "should allow creating/updating a gone route" do
304
+ route_data = {"incoming_path" => "/foo", "route_type" => "exact", "handler" => "gone"}
305
+ req = WebMock.stub_request(:put, "#{@base_api_url}/routes").
306
+ with(:body => {"route" => route_data}.to_json).
307
+ to_return(:status => 201, :body => route_data.to_json, :headers => {"Content-type" => "application/json"})
308
+
309
+ response = @api.add_gone_route("/foo", "exact")
310
+ assert_equal 201, response.code
311
+ assert_equal "/foo", response.incoming_path
312
+
313
+ assert_requested(req)
314
+ assert_not_requested(@commit_req)
315
+ end
316
+
317
+ it "should commit the routes when asked to" do
318
+ req = WebMock.stub_request(:put, "#{@base_api_url}/routes").
319
+ to_return(:status => 201, :body =>{}.to_json, :headers => {"Content-type" => "application/json"})
320
+
321
+ @api.add_gone_route("/foo", "exact", :commit => true)
322
+
323
+ assert_requested(req)
324
+ assert_requested(@commit_req)
325
+ end
326
+
327
+ it "should raise an error if creating/updating the gone route fails" do
328
+ route_data = {"incoming_path" => "foo", "route_type" => "exact", "handler" => "gone"}
329
+ response_data = route_data.merge("errors" => {"incoming_path" => "is not a valid URL path"})
330
+
331
+ req = WebMock.stub_request(:put, "#{@base_api_url}/routes").
332
+ with(:body => {"route" => route_data}.to_json).
333
+ to_return(:status => 400, :body => response_data.to_json, :headers => {"Content-type" => "application/json"})
334
+
335
+ e = nil
336
+ begin
337
+ @api.add_gone_route("foo", "exact")
338
+ rescue GdsApi::HTTPErrorResponse => ex
339
+ e = ex
340
+ end
341
+
342
+ refute_nil e
343
+ assert_equal 400, e.code
344
+ assert_equal response_data, e.error_details
345
+
346
+ assert_requested(req)
347
+ assert_not_requested(@commit_req)
348
+ end
349
+ end
350
+
302
351
  describe "deleting a route" do
303
352
  it "should allow deleting a route" do
304
353
  route_data = {"incoming_path" => "/foo", "route_type" => "exact", "handler" => "backend", "backend_id" => "foo"}
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: 16.2.0
4
+ version: 16.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-11-17 00:00:00.000000000 Z
12
+ date: 2014-11-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: plek
16
- requirement: &20321620 !ruby/object:Gem::Requirement
16
+ requirement: &11686740 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *20321620
24
+ version_requirements: *11686740
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: null_logger
27
- requirement: &20319680 !ruby/object:Gem::Requirement
27
+ requirement: &11684900 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *20319680
35
+ version_requirements: *11684900
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: link_header
38
- requirement: &20318800 !ruby/object:Gem::Requirement
38
+ requirement: &11683860 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *20318800
46
+ version_requirements: *11683860
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: lrucache
49
- requirement: &20317480 !ruby/object:Gem::Requirement
49
+ requirement: &11682540 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 0.1.1
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *20317480
57
+ version_requirements: *11682540
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rest-client
60
- requirement: &20316040 !ruby/object:Gem::Requirement
60
+ requirement: &11681380 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.6.3
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *20316040
68
+ version_requirements: *11681380
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rack-cache
71
- requirement: &20346560 !ruby/object:Gem::Requirement
71
+ requirement: &11711620 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *20346560
79
+ version_requirements: *11711620
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rdoc
82
- requirement: &20345020 !ruby/object:Gem::Requirement
82
+ requirement: &11709980 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - =
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '3.12'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *20345020
90
+ version_requirements: *11709980
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: rake
93
- requirement: &20342840 !ruby/object:Gem::Requirement
93
+ requirement: &11707120 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: 0.9.2.2
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *20342840
101
+ version_requirements: *11707120
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: webmock
104
- requirement: &20340220 !ruby/object:Gem::Requirement
104
+ requirement: &11704720 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ~>
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '1.19'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *20340220
112
+ version_requirements: *11704720
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: mocha
115
- requirement: &20352900 !ruby/object:Gem::Requirement
115
+ requirement: &11716640 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ~>
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: 0.12.4
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *20352900
123
+ version_requirements: *11716640
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: minitest
126
- requirement: &20380780 !ruby/object:Gem::Requirement
126
+ requirement: &11742100 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ~>
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: 3.4.0
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *20380780
134
+ version_requirements: *11742100
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: rack
137
- requirement: &20376300 !ruby/object:Gem::Requirement
137
+ requirement: &11767880 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ! '>='
@@ -142,10 +142,10 @@ dependencies:
142
142
  version: '0'
143
143
  type: :development
144
144
  prerelease: false
145
- version_requirements: *20376300
145
+ version_requirements: *11767880
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: rack-test
148
- requirement: &20402200 !ruby/object:Gem::Requirement
148
+ requirement: &11765980 !ruby/object:Gem::Requirement
149
149
  none: false
150
150
  requirements:
151
151
  - - ! '>='
@@ -153,10 +153,10 @@ dependencies:
153
153
  version: '0'
154
154
  type: :development
155
155
  prerelease: false
156
- version_requirements: *20402200
156
+ version_requirements: *11765980
157
157
  - !ruby/object:Gem::Dependency
158
158
  name: simplecov
159
- requirement: &20400220 !ruby/object:Gem::Requirement
159
+ requirement: &11763760 !ruby/object:Gem::Requirement
160
160
  none: false
161
161
  requirements:
162
162
  - - ~>
@@ -164,10 +164,10 @@ dependencies:
164
164
  version: 0.5.4
165
165
  type: :development
166
166
  prerelease: false
167
- version_requirements: *20400220
167
+ version_requirements: *11763760
168
168
  - !ruby/object:Gem::Dependency
169
169
  name: simplecov-rcov
170
- requirement: &20397740 !ruby/object:Gem::Requirement
170
+ requirement: &11761760 !ruby/object:Gem::Requirement
171
171
  none: false
172
172
  requirements:
173
173
  - - ! '>='
@@ -175,10 +175,10 @@ dependencies:
175
175
  version: '0'
176
176
  type: :development
177
177
  prerelease: false
178
- version_requirements: *20397740
178
+ version_requirements: *11761760
179
179
  - !ruby/object:Gem::Dependency
180
180
  name: gem_publisher
181
- requirement: &20418460 !ruby/object:Gem::Requirement
181
+ requirement: &11783560 !ruby/object:Gem::Requirement
182
182
  none: false
183
183
  requirements:
184
184
  - - ~>
@@ -186,10 +186,10 @@ dependencies:
186
186
  version: 1.1.1
187
187
  type: :development
188
188
  prerelease: false
189
- version_requirements: *20418460
189
+ version_requirements: *11783560
190
190
  - !ruby/object:Gem::Dependency
191
191
  name: timecop
192
- requirement: &20414820 !ruby/object:Gem::Requirement
192
+ requirement: &11780460 !ruby/object:Gem::Requirement
193
193
  none: false
194
194
  requirements:
195
195
  - - ~>
@@ -197,10 +197,10 @@ dependencies:
197
197
  version: 0.5.1
198
198
  type: :development
199
199
  prerelease: false
200
- version_requirements: *20414820
200
+ version_requirements: *11780460
201
201
  - !ruby/object:Gem::Dependency
202
202
  name: pry
203
- requirement: &20414260 !ruby/object:Gem::Requirement
203
+ requirement: &11779880 !ruby/object:Gem::Requirement
204
204
  none: false
205
205
  requirements:
206
206
  - - ! '>='
@@ -208,7 +208,7 @@ dependencies:
208
208
  version: '0'
209
209
  type: :development
210
210
  prerelease: false
211
- version_requirements: *20414260
211
+ version_requirements: *11779880
212
212
  description: A set of adapters providing easy access to the GDS GOV.UK APIs
213
213
  email:
214
214
  - jystewart@gmail.com
@@ -343,7 +343,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
343
343
  version: '0'
344
344
  segments:
345
345
  - 0
346
- hash: -3298581131197247777
346
+ hash: -4192206180394389566
347
347
  required_rubygems_version: !ruby/object:Gem::Requirement
348
348
  none: false
349
349
  requirements:
@@ -352,7 +352,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
352
352
  version: '0'
353
353
  segments:
354
354
  - 0
355
- hash: -3298581131197247777
355
+ hash: -4192206180394389566
356
356
  requirements: []
357
357
  rubyforge_project:
358
358
  rubygems_version: 1.8.11