gds-api-adapters 14.1.1 → 14.2.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.
@@ -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