gds-api-adapters 14.1.1 → 14.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ require_relative 'base'
2
+ require_relative 'exceptions'
3
+
4
+ class GdsApi::CollectionsApi < GdsApi::Base
5
+
6
+ def curated_lists_for(base_path)
7
+ get_json(collections_api_url(base_path))
8
+ end
9
+
10
+ private
11
+
12
+ def collections_api_url(base_path)
13
+ "#{endpoint}/curated-lists#{base_path}"
14
+ end
15
+ end
@@ -1,5 +1,6 @@
1
1
  require 'gds_api/asset_manager'
2
2
  require 'gds_api/business_support_api'
3
+ require 'gds_api/collections_api'
3
4
  require 'gds_api/content_api'
4
5
  require 'gds_api/content_store'
5
6
  require 'gds_api/fact_cave'
@@ -21,6 +22,10 @@ module GdsApi
21
22
  @business_support_api ||= GdsApi::BusinessSupportApi.new(Plek.current.find("business-support-api"), options)
22
23
  end
23
24
 
25
+ def collections_api(options = {})
26
+ @collections_api ||= GdsApi::CollectionsApi.new(Plek.current.find("collections-api"), options)
27
+ end
28
+
24
29
  def content_api(options = {})
25
30
  @content_api ||= GdsApi::ContentApi.new(Plek.current.find("contentapi"), options)
26
31
  end
@@ -0,0 +1,63 @@
1
+ require 'gds_api/test_helpers/json_client_helper'
2
+ require 'json'
3
+
4
+ module GdsApi
5
+ module TestHelpers
6
+ module CollectionsApi
7
+ COLLECTIONS_API_ENDPOINT = Plek.current.find('collections-api')
8
+
9
+ def collections_api_has_curated_lists_for(base_path)
10
+ url = COLLECTIONS_API_ENDPOINT + "/curated-lists" + base_path
11
+
12
+ stub_request(:get, url).to_return(
13
+ status: 200,
14
+ body: body_with_options(base_path: base_path).to_json,
15
+ )
16
+ end
17
+
18
+ def collections_api_has_no_curated_lists_for(base_path)
19
+ url = COLLECTIONS_API_ENDPOINT + "/curated-lists" + base_path
20
+
21
+ stub_request(:get, url).to_return(
22
+ status: 404
23
+ )
24
+ end
25
+
26
+ private
27
+
28
+ def body_with_options(options)
29
+ {
30
+ base_path: options.fetch(:base_path),
31
+ title: 'Example title',
32
+ description: 'example description',
33
+ public_updated_at: "2014-03-04T13:58:11+00:00",
34
+ details: {
35
+ groups: [
36
+ # Curated content excluding untagged content
37
+ {
38
+ name: "Oil rigs",
39
+ contents: [
40
+ "http://example.com/api/oil-rig-safety-requirements.json",
41
+ "http://example.com/api/oil-rig-staffing.json"
42
+ ]
43
+ },
44
+ {
45
+ name: "Piping",
46
+ contents: [
47
+ "http://example.com/api/undersea-piping-restrictions.json"
48
+ ]
49
+ },
50
+ # Uncurated content
51
+ {
52
+ name: "Other",
53
+ contents: [
54
+ "http://example.com/api/north-sea-shipping-lanes.json"
55
+ ]
56
+ }
57
+ ]
58
+ }
59
+ }
60
+ end
61
+ end
62
+ end
63
+ end
@@ -1,3 +1,3 @@
1
1
  module GdsApi
2
- VERSION = '14.1.1'
2
+ VERSION = '14.2.0'
3
3
  end
@@ -0,0 +1,21 @@
1
+ require 'test_helper'
2
+ require 'gds_api/collections_api'
3
+ require 'gds_api/test_helpers/collections_api'
4
+
5
+ describe GdsApi::CollectionsApi do
6
+ include GdsApi::TestHelpers::CollectionsApi
7
+
8
+ before do
9
+ @base_api_url = Plek.current.find("collections-api")
10
+ @api = GdsApi::CollectionsApi.new(@base_api_url)
11
+ end
12
+
13
+ describe "curated_lists_for" do
14
+ it "should return the curated lists for a given base path" do
15
+ base_path = "/test/base-path"
16
+ collections_api_has_curated_lists_for(base_path)
17
+ response = @api.curated_lists_for(base_path)
18
+ assert_equal base_path, response["base_path"]
19
+ end
20
+ end
21
+ end
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: 14.1.1
4
+ version: 14.2.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-08-15 00:00:00.000000000 Z
12
+ date: 2014-08-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: plek
16
- requirement: !ruby/object:Gem::Requirement
16
+ requirement: &13608540 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,15 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
24
+ version_requirements: *13608540
30
25
  - !ruby/object:Gem::Dependency
31
26
  name: null_logger
32
- requirement: !ruby/object:Gem::Requirement
27
+ requirement: &13606680 !ruby/object:Gem::Requirement
33
28
  none: false
34
29
  requirements:
35
30
  - - ! '>='
@@ -37,15 +32,10 @@ dependencies:
37
32
  version: '0'
38
33
  type: :runtime
39
34
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
35
+ version_requirements: *13606680
46
36
  - !ruby/object:Gem::Dependency
47
37
  name: link_header
48
- requirement: !ruby/object:Gem::Requirement
38
+ requirement: &13697120 !ruby/object:Gem::Requirement
49
39
  none: false
50
40
  requirements:
51
41
  - - ! '>='
@@ -53,15 +43,10 @@ dependencies:
53
43
  version: '0'
54
44
  type: :runtime
55
45
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
46
+ version_requirements: *13697120
62
47
  - !ruby/object:Gem::Dependency
63
48
  name: lrucache
64
- requirement: !ruby/object:Gem::Requirement
49
+ requirement: &13696400 !ruby/object:Gem::Requirement
65
50
  none: false
66
51
  requirements:
67
52
  - - ~>
@@ -69,15 +54,10 @@ dependencies:
69
54
  version: 0.1.1
70
55
  type: :runtime
71
56
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ~>
76
- - !ruby/object:Gem::Version
77
- version: 0.1.1
57
+ version_requirements: *13696400
78
58
  - !ruby/object:Gem::Dependency
79
59
  name: rest-client
80
- requirement: !ruby/object:Gem::Requirement
60
+ requirement: &13695720 !ruby/object:Gem::Requirement
81
61
  none: false
82
62
  requirements:
83
63
  - - ~>
@@ -85,15 +65,10 @@ dependencies:
85
65
  version: 1.6.3
86
66
  type: :runtime
87
67
  prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ~>
92
- - !ruby/object:Gem::Version
93
- version: 1.6.3
68
+ version_requirements: *13695720
94
69
  - !ruby/object:Gem::Dependency
95
70
  name: rack-cache
96
- requirement: !ruby/object:Gem::Requirement
71
+ requirement: &13695260 !ruby/object:Gem::Requirement
97
72
  none: false
98
73
  requirements:
99
74
  - - ! '>='
@@ -101,31 +76,21 @@ dependencies:
101
76
  version: '0'
102
77
  type: :runtime
103
78
  prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
- requirements:
107
- - - ! '>='
108
- - !ruby/object:Gem::Version
109
- version: '0'
79
+ version_requirements: *13695260
110
80
  - !ruby/object:Gem::Dependency
111
81
  name: rdoc
112
- requirement: !ruby/object:Gem::Requirement
82
+ requirement: &13694500 !ruby/object:Gem::Requirement
113
83
  none: false
114
84
  requirements:
115
- - - '='
85
+ - - =
116
86
  - !ruby/object:Gem::Version
117
87
  version: '3.12'
118
88
  type: :development
119
89
  prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
- requirements:
123
- - - '='
124
- - !ruby/object:Gem::Version
125
- version: '3.12'
90
+ version_requirements: *13694500
126
91
  - !ruby/object:Gem::Dependency
127
92
  name: rake
128
- requirement: !ruby/object:Gem::Requirement
93
+ requirement: &13693780 !ruby/object:Gem::Requirement
129
94
  none: false
130
95
  requirements:
131
96
  - - ~>
@@ -133,15 +98,10 @@ dependencies:
133
98
  version: 0.9.2.2
134
99
  type: :development
135
100
  prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
- requirements:
139
- - - ~>
140
- - !ruby/object:Gem::Version
141
- version: 0.9.2.2
101
+ version_requirements: *13693780
142
102
  - !ruby/object:Gem::Dependency
143
103
  name: webmock
144
- requirement: !ruby/object:Gem::Requirement
104
+ requirement: &13693120 !ruby/object:Gem::Requirement
145
105
  none: false
146
106
  requirements:
147
107
  - - ~>
@@ -149,15 +109,10 @@ dependencies:
149
109
  version: '1.8'
150
110
  type: :development
151
111
  prerelease: false
152
- version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
- requirements:
155
- - - ~>
156
- - !ruby/object:Gem::Version
157
- version: '1.8'
112
+ version_requirements: *13693120
158
113
  - !ruby/object:Gem::Dependency
159
114
  name: mocha
160
- requirement: !ruby/object:Gem::Requirement
115
+ requirement: &13692440 !ruby/object:Gem::Requirement
161
116
  none: false
162
117
  requirements:
163
118
  - - ~>
@@ -165,15 +120,10 @@ dependencies:
165
120
  version: 0.12.4
166
121
  type: :development
167
122
  prerelease: false
168
- version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
- requirements:
171
- - - ~>
172
- - !ruby/object:Gem::Version
173
- version: 0.12.4
123
+ version_requirements: *13692440
174
124
  - !ruby/object:Gem::Dependency
175
125
  name: minitest
176
- requirement: !ruby/object:Gem::Requirement
126
+ requirement: &13691760 !ruby/object:Gem::Requirement
177
127
  none: false
178
128
  requirements:
179
129
  - - ~>
@@ -181,15 +131,10 @@ dependencies:
181
131
  version: 3.4.0
182
132
  type: :development
183
133
  prerelease: false
184
- version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
- requirements:
187
- - - ~>
188
- - !ruby/object:Gem::Version
189
- version: 3.4.0
134
+ version_requirements: *13691760
190
135
  - !ruby/object:Gem::Dependency
191
136
  name: rack
192
- requirement: !ruby/object:Gem::Requirement
137
+ requirement: &13691200 !ruby/object:Gem::Requirement
193
138
  none: false
194
139
  requirements:
195
140
  - - ! '>='
@@ -197,15 +142,10 @@ dependencies:
197
142
  version: '0'
198
143
  type: :development
199
144
  prerelease: false
200
- version_requirements: !ruby/object:Gem::Requirement
201
- none: false
202
- requirements:
203
- - - ! '>='
204
- - !ruby/object:Gem::Version
205
- version: '0'
145
+ version_requirements: *13691200
206
146
  - !ruby/object:Gem::Dependency
207
147
  name: rack-test
208
- requirement: !ruby/object:Gem::Requirement
148
+ requirement: &13689940 !ruby/object:Gem::Requirement
209
149
  none: false
210
150
  requirements:
211
151
  - - ! '>='
@@ -213,15 +153,10 @@ dependencies:
213
153
  version: '0'
214
154
  type: :development
215
155
  prerelease: false
216
- version_requirements: !ruby/object:Gem::Requirement
217
- none: false
218
- requirements:
219
- - - ! '>='
220
- - !ruby/object:Gem::Version
221
- version: '0'
156
+ version_requirements: *13689940
222
157
  - !ruby/object:Gem::Dependency
223
158
  name: simplecov
224
- requirement: !ruby/object:Gem::Requirement
159
+ requirement: &13639380 !ruby/object:Gem::Requirement
225
160
  none: false
226
161
  requirements:
227
162
  - - ~>
@@ -229,15 +164,10 @@ dependencies:
229
164
  version: 0.5.4
230
165
  type: :development
231
166
  prerelease: false
232
- version_requirements: !ruby/object:Gem::Requirement
233
- none: false
234
- requirements:
235
- - - ~>
236
- - !ruby/object:Gem::Version
237
- version: 0.5.4
167
+ version_requirements: *13639380
238
168
  - !ruby/object:Gem::Dependency
239
169
  name: simplecov-rcov
240
- requirement: !ruby/object:Gem::Requirement
170
+ requirement: &13637860 !ruby/object:Gem::Requirement
241
171
  none: false
242
172
  requirements:
243
173
  - - ! '>='
@@ -245,15 +175,10 @@ dependencies:
245
175
  version: '0'
246
176
  type: :development
247
177
  prerelease: false
248
- version_requirements: !ruby/object:Gem::Requirement
249
- none: false
250
- requirements:
251
- - - ! '>='
252
- - !ruby/object:Gem::Version
253
- version: '0'
178
+ version_requirements: *13637860
254
179
  - !ruby/object:Gem::Dependency
255
180
  name: gem_publisher
256
- requirement: !ruby/object:Gem::Requirement
181
+ requirement: &13636080 !ruby/object:Gem::Requirement
257
182
  none: false
258
183
  requirements:
259
184
  - - ~>
@@ -261,15 +186,10 @@ dependencies:
261
186
  version: 1.1.1
262
187
  type: :development
263
188
  prerelease: false
264
- version_requirements: !ruby/object:Gem::Requirement
265
- none: false
266
- requirements:
267
- - - ~>
268
- - !ruby/object:Gem::Version
269
- version: 1.1.1
189
+ version_requirements: *13636080
270
190
  - !ruby/object:Gem::Dependency
271
191
  name: timecop
272
- requirement: !ruby/object:Gem::Requirement
192
+ requirement: &13634560 !ruby/object:Gem::Requirement
273
193
  none: false
274
194
  requirements:
275
195
  - - ~>
@@ -277,12 +197,7 @@ dependencies:
277
197
  version: 0.5.1
278
198
  type: :development
279
199
  prerelease: false
280
- version_requirements: !ruby/object:Gem::Requirement
281
- none: false
282
- requirements:
283
- - - ~>
284
- - !ruby/object:Gem::Version
285
- version: 0.5.1
200
+ version_requirements: *13634560
286
201
  description: A set of adapters providing easy access to the GDS GOV.UK APIs
287
202
  email:
288
203
  - jystewart@gmail.com
@@ -300,6 +215,7 @@ files:
300
215
  - lib/gds_api/exceptions.rb
301
216
  - lib/gds_api/finder_schema.rb
302
217
  - lib/gds_api/performance_platform/data_in.rb
218
+ - lib/gds_api/collections_api.rb
303
219
  - lib/gds_api/json_client.rb
304
220
  - lib/gds_api/base.rb
305
221
  - lib/gds_api/licence_application.rb
@@ -312,6 +228,7 @@ files:
312
228
  - lib/gds_api/test_helpers/finder_api.rb
313
229
  - lib/gds_api/test_helpers/content_api/artefact_stub.rb
314
230
  - lib/gds_api/test_helpers/performance_platform/data_in.rb
231
+ - lib/gds_api/test_helpers/collections_api.rb
315
232
  - lib/gds_api/test_helpers/licence_application.rb
316
233
  - lib/gds_api/test_helpers/content_item_helpers.rb
317
234
  - lib/gds_api/test_helpers/organisations.rb
@@ -381,6 +298,7 @@ files:
381
298
  - test/response_test.rb
382
299
  - test/organisations_api_test.rb
383
300
  - test/imminence_api_test.rb
301
+ - test/collections_api_test.rb
384
302
  - test/content_store_test.rb
385
303
  - test/asset_manager_test.rb
386
304
  - test/fixtures/hello.txt
@@ -410,7 +328,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
410
328
  version: '0'
411
329
  segments:
412
330
  - 0
413
- hash: 640986324676272384
331
+ hash: -1137919334881827629
414
332
  required_rubygems_version: !ruby/object:Gem::Requirement
415
333
  none: false
416
334
  requirements:
@@ -419,10 +337,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
419
337
  version: '0'
420
338
  segments:
421
339
  - 0
422
- hash: 640986324676272384
340
+ hash: -1137919334881827629
423
341
  requirements: []
424
342
  rubyforge_project:
425
- rubygems_version: 1.8.23
343
+ rubygems_version: 1.8.11
426
344
  signing_key:
427
345
  specification_version: 3
428
346
  summary: Adapters to work with GDS APIs
@@ -450,6 +368,7 @@ test_files:
450
368
  - test/response_test.rb
451
369
  - test/organisations_api_test.rb
452
370
  - test/imminence_api_test.rb
371
+ - test/collections_api_test.rb
453
372
  - test/content_store_test.rb
454
373
  - test/asset_manager_test.rb
455
374
  - test/fixtures/hello.txt