gds-api-adapters 31.1.0 → 31.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/gds_api/asset_manager.rb +62 -16
- data/lib/gds_api/mapit.rb +4 -0
- data/lib/gds_api/test_helpers/mapit.rb +12 -1
- data/lib/gds_api/version.rb +1 -1
- data/test/mapit_test.rb +27 -0
- metadata +40 -40
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c42cb1e42bd86839f165b478625dd26da0565661
|
4
|
+
data.tar.gz: 001a349f35443aba6650d824d4302295bbb485cf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 85c6c6760862684095f99dd1e4e1496852c408f0e9158cf4794cd5ca2394bed546d783c05043ed540a5b810a44c1946c32a41ea0028ca2bf91020846c1d859fa
|
7
|
+
data.tar.gz: 97e59749dbd70fc76ea10682ba87a863d460a9c3664044c3afc4dd889f95a3018c10b67e99e6e4d969e3bd53180813c164af26ec789f31ba6e227071bfe592c5
|
@@ -3,42 +3,88 @@ require_relative 'exceptions'
|
|
3
3
|
|
4
4
|
class GdsApi::AssetManager < GdsApi::Base
|
5
5
|
|
6
|
-
# Creates an asset given
|
6
|
+
# Creates an asset given a hash with one +file+ attribute
|
7
7
|
#
|
8
|
-
# Makes a
|
9
|
-
# the following attributes:
|
8
|
+
# Makes a +POST+ request to the asset manager api to create an asset.
|
10
9
|
#
|
11
|
-
#
|
10
|
+
# The asset must be provided as a +Hash+ with a single +file+ attribute that
|
11
|
+
# behaves like a +File+ object. The +content-type+ that the asset manager will
|
12
|
+
# subsequently serve will be based *only* on the file's extension (derived
|
13
|
+
# from +#path+). If you supply a +content-type+ via, for example
|
14
|
+
# +ActionDispatch::Http::UploadedFile+ or another multipart wrapper, it will
|
15
|
+
# be ignored.
|
12
16
|
#
|
13
|
-
# @param asset [Hash] The attributes for the asset to send to the api.
|
14
|
-
#
|
17
|
+
# @param asset [Hash] The attributes for the asset to send to the api. Must
|
18
|
+
# contain +file+, which behaves like a +File+. All other attributes will be
|
19
|
+
# ignored.
|
20
|
+
# @return [GdsApi::Response] The wrapped http response from the api. Behaves
|
21
|
+
# both as a +Hash+ and an +OpenStruct+, and responds to the following:
|
22
|
+
# :id the URL of the asset
|
23
|
+
# :name the filename of the asset that will be served
|
24
|
+
# :content_type the content_type of the asset
|
25
|
+
# :file_url the URL from which the asset will be served when it has
|
26
|
+
# passed a virus scan
|
27
|
+
# :state One of 'unscanned', 'clean', or 'infected'. Unless the state is
|
28
|
+
# 'clean' the asset at the :file_url will 404
|
15
29
|
#
|
16
30
|
# @raise [HTTPErrorResponse] if the request returns an error
|
31
|
+
#
|
32
|
+
# @example Upload a file from disk
|
33
|
+
# response = asset_manager.create_asset(file: File.new('image.jpg', 'r'))
|
34
|
+
# response.id #=> "http://asset-manager.dev.gov.uk/assets/576bbc52759b74196b000012"
|
35
|
+
# response.content_type #=> "image/jpeg"
|
36
|
+
# @example Upload a file from a Rails param, (typically a multipart wrapper)
|
37
|
+
# params[:file] #=> #<ActionDispatch::Http::UploadedFile:0x007fc60b43c5c8
|
38
|
+
# # @content_type="application/foofle",
|
39
|
+
# # @original_filename="cma_case_image.jpg",
|
40
|
+
# # @tempfile="spec/support/images/cma_case_image.jpg">
|
41
|
+
#
|
42
|
+
# # Though we sent a file with a +content_type+ of 'application/foofle',
|
43
|
+
# # this was ignored
|
44
|
+
# response = asset_manager.create_asset(file: params[:file])
|
45
|
+
# response.content_type #=> "image/jpeg"
|
17
46
|
def create_asset(asset)
|
18
47
|
post_multipart("#{base_url}/assets", { :asset => asset })
|
19
48
|
end
|
20
49
|
|
21
|
-
# Updates an asset given
|
50
|
+
# Updates an asset given a hash with one +file+ attribute
|
22
51
|
#
|
23
|
-
# Makes a
|
24
|
-
# The api accepts the following attributes:
|
52
|
+
# Makes a +PUT+ request to the asset manager api to update an asset.
|
25
53
|
#
|
26
|
-
#
|
54
|
+
# The asset must be provided as a +Hash+ with a single +file+ attribute that
|
55
|
+
# behaves like a +File+ object. The +content-type+ that the asset manager will
|
56
|
+
# subsequently serve will be based *only* on the file's extension (derived
|
57
|
+
# from +#path+). If you supply a +content-type+ via, for example
|
58
|
+
# +ActionDispatch::Http::UploadedFile+ or another multipart wrapper, it will
|
59
|
+
# be ignored.
|
27
60
|
#
|
28
|
-
# @param id [String] The asset identifier
|
29
|
-
# @param asset [Hash] The attributes for the asset to send to the api.
|
30
|
-
#
|
61
|
+
# @param id [String] The asset identifier (a UUID).
|
62
|
+
# @param asset [Hash] The attributes for the asset to send to the api. Must
|
63
|
+
# contain +file+, which behaves like a +File+. All other attributes will be
|
64
|
+
# ignored.
|
65
|
+
# @return [GdsApi::Response] The wrapped http response from the api. Behaves
|
66
|
+
# both as a +Hash+ and an +OpenStruct+, and responds to the following:
|
67
|
+
# :id the URL of the asset
|
68
|
+
# :name the filename of the asset that will be served
|
69
|
+
# :content_type the content_type of the asset
|
70
|
+
# :file_url the URL from which the asset will be served when it has
|
71
|
+
# passed a virus scan
|
72
|
+
# :state One of 'unscanned', 'clean', or 'infected'. Unless the state is
|
73
|
+
# 'clean' the asset at the :file_url will 404
|
31
74
|
#
|
32
75
|
# @raise [HTTPErrorResponse] if the request returns an error
|
76
|
+
# @example Update a file from disk
|
77
|
+
# uuid = '594602dd-75b3-4e6f-b5d1-cacf8c4d4164'
|
78
|
+
# asset_manager.update_asset(uuid, file: File.new('image.jpg', 'r'))
|
33
79
|
def update_asset(id, asset)
|
34
80
|
put_multipart("#{base_url}/assets/#{id}", { :asset => asset })
|
35
81
|
end
|
36
82
|
|
37
83
|
# Fetches an asset given the id
|
38
84
|
#
|
39
|
-
# @param id [String] The asset identifier
|
40
|
-
# @return [Response, nil] A response object containing the parsed JSON response. If
|
41
|
-
# the asset cannot be found, nil wil be returned.
|
85
|
+
# @param id [String] The asset identifier (a UUID).
|
86
|
+
# @return [GdsApi::Response, nil] A response object containing the parsed JSON response. If
|
87
|
+
# the asset cannot be found, +nil+ wil be returned.
|
42
88
|
#
|
43
89
|
# @raise [HTTPErrorResponse] if the request returns an error
|
44
90
|
def asset(id)
|
data/lib/gds_api/mapit.rb
CHANGED
@@ -28,7 +28,8 @@ module GdsApi
|
|
28
28
|
[i, {
|
29
29
|
'codes' => {
|
30
30
|
'ons' => area['ons'],
|
31
|
-
'gss' => area['gss']
|
31
|
+
'gss' => area['gss'],
|
32
|
+
'govuk_slug' => area['govuk_slug']
|
32
33
|
},
|
33
34
|
'name' => area['name'],
|
34
35
|
'type' => area['type']
|
@@ -60,6 +61,16 @@ module GdsApi
|
|
60
61
|
stub_request(:get, "#{MAPIT_ENDPOINT}/areas/" + area_type + ".json")
|
61
62
|
.to_return(:body => [].to_json, :status => 200)
|
62
63
|
end
|
64
|
+
|
65
|
+
def mapit_has_area_for_code(code_type, code, area)
|
66
|
+
stub_request(:get, "#{MAPIT_ENDPOINT}/code/#{code_type}/#{code}.json")
|
67
|
+
.to_return(:body => area.to_json, :status => 200)
|
68
|
+
end
|
69
|
+
|
70
|
+
def mapit_does_not_have_area_for_code(code_type, code)
|
71
|
+
stub_request(:get, "#{MAPIT_ENDPOINT}/code/#{code_type}/#{code}.json")
|
72
|
+
.to_return(:body => { "code" => 404, "error" => "No areas were found that matched code #{code_type} = #{code}." }.to_json, :status => 404)
|
73
|
+
end
|
63
74
|
end
|
64
75
|
end
|
65
76
|
end
|
data/lib/gds_api/version.rb
CHANGED
data/test/mapit_test.rb
CHANGED
@@ -59,6 +59,7 @@ describe GdsApi::Mapit do
|
|
59
59
|
end
|
60
60
|
end
|
61
61
|
end
|
62
|
+
|
62
63
|
describe "areas_for_type" do
|
63
64
|
before do
|
64
65
|
mapit_has_areas('EUR', {
|
@@ -85,4 +86,30 @@ describe GdsApi::Mapit do
|
|
85
86
|
assert_empty response
|
86
87
|
end
|
87
88
|
end
|
89
|
+
|
90
|
+
describe "area_for_code" do
|
91
|
+
before do
|
92
|
+
south_ribble_area = {
|
93
|
+
name: "South Ribble Borough Council",
|
94
|
+
codes: {
|
95
|
+
ons: "30UN",
|
96
|
+
gss: "E07000126",
|
97
|
+
unit_id: "4834"
|
98
|
+
},
|
99
|
+
type: "DIS"
|
100
|
+
}
|
101
|
+
mapit_has_area_for_code('ons', '30UN', south_ribble_area)
|
102
|
+
mapit_does_not_have_area_for_code('govuk_slug', 'neverland')
|
103
|
+
end
|
104
|
+
|
105
|
+
it "should return area for a code type" do
|
106
|
+
area = @api.area_for_code('ons', '30UN')
|
107
|
+
|
108
|
+
assert_equal "South Ribble Borough Council", area["name"]
|
109
|
+
end
|
110
|
+
|
111
|
+
it "should return 404 for a missing area of a certain code type" do
|
112
|
+
assert_nil @api.area_for_code('govuk_slug', 'neverland')
|
113
|
+
end
|
114
|
+
end
|
88
115
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gds-api-adapters
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 31.
|
4
|
+
version: 31.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Stewart
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-06-
|
11
|
+
date: 2016-06-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: plek
|
@@ -471,55 +471,55 @@ signing_key:
|
|
471
471
|
specification_version: 4
|
472
472
|
summary: Adapters to work with GDS APIs
|
473
473
|
test_files:
|
474
|
-
- test/
|
475
|
-
- test/
|
474
|
+
- test/content_api_test.rb
|
475
|
+
- test/json_client_test.rb
|
476
|
+
- test/content_store_test.rb
|
476
477
|
- test/publishing_api_test.rb
|
477
|
-
- test/
|
478
|
-
- test/
|
479
|
-
- test/publishing_api_v2/get_expanded_links_test.rb
|
478
|
+
- test/business_support_api_test.rb
|
479
|
+
- test/middleware/govuk_header_sniffer_test.rb
|
480
480
|
- test/whitehall_admin_api_test.rb
|
481
|
-
- test/
|
482
|
-
- test/
|
483
|
-
- test/
|
484
|
-
- test/publisher_api_test.rb
|
485
|
-
- test/rummager_helpers_test.rb
|
481
|
+
- test/list_response_test.rb
|
482
|
+
- test/maslow_test.rb
|
483
|
+
- test/panopticon_registerer_test.rb
|
486
484
|
- test/support_test.rb
|
487
|
-
- test/
|
488
|
-
- test/
|
489
|
-
- test/test_helpers/panopticon_test.rb
|
490
|
-
- test/test_helpers/email_alert_api_test.rb
|
491
|
-
- test/test_helpers/publishing_api_v2_test.rb
|
485
|
+
- test/asset_manager_test.rb
|
486
|
+
- test/helpers_test.rb
|
492
487
|
- test/licence_application_api_test.rb
|
493
|
-
- test/
|
494
|
-
- test/maslow_test.rb
|
488
|
+
- test/test_helper.rb
|
495
489
|
- test/govuk_headers_test.rb
|
496
|
-
- test/
|
497
|
-
- test/
|
498
|
-
- test/
|
499
|
-
- test/
|
500
|
-
- test/
|
501
|
-
- test/
|
502
|
-
- test/
|
503
|
-
- test/
|
504
|
-
- test/response_test.rb
|
490
|
+
- test/publisher_api_test.rb
|
491
|
+
- test/mapit_test.rb
|
492
|
+
- test/rummager_helpers_test.rb
|
493
|
+
- test/publishing_api_v2_test.rb
|
494
|
+
- test/publishing_api_v2/lookup_test.rb
|
495
|
+
- test/publishing_api_v2/get_expanded_links_test.rb
|
496
|
+
- test/publishing_api_v2/get_links_test.rb
|
497
|
+
- test/support_api_test.rb
|
505
498
|
- test/organisations_api_test.rb
|
506
|
-
- test/
|
507
|
-
- test/
|
508
|
-
- test/
|
499
|
+
- test/gds_api_base_test.rb
|
500
|
+
- test/router_test.rb
|
501
|
+
- test/publishing_api/special_route_publisher_test.rb
|
502
|
+
- test/external_link_tracker_test.rb
|
503
|
+
- test/need_api_test.rb
|
504
|
+
- test/panopticon_test.rb
|
505
|
+
- test/pp_data_in_test.rb
|
509
506
|
- test/fixtures/hello.txt
|
510
507
|
- test/fixtures/new_policies_for_dwp.json
|
511
|
-
- test/fixtures/world_organisations_australia.json
|
512
508
|
- test/fixtures/no_services_and_info_data_found_fixture.json
|
513
|
-
- test/fixtures/old_policies_for_dwp.json
|
514
509
|
- test/fixtures/services_and_info_fixture.json
|
510
|
+
- test/fixtures/old_policies_for_dwp.json
|
511
|
+
- test/fixtures/world_organisations_australia.json
|
515
512
|
- test/fixtures/sub_sector_organisations.json
|
516
513
|
- test/fixtures/finder_api/cma-case-schema.json
|
517
|
-
- test/router_test.rb
|
518
|
-
- test/list_response_test.rb
|
519
|
-
- test/external_link_tracker_test.rb
|
520
|
-
- test/gds_api_base_test.rb
|
521
514
|
- test/worldwide_api_test.rb
|
522
|
-
- test/
|
523
|
-
- test/publishing_api_v2_test.rb
|
524
|
-
- test/
|
515
|
+
- test/test_helpers/publishing_api_test.rb
|
516
|
+
- test/test_helpers/publishing_api_v2_test.rb
|
517
|
+
- test/test_helpers/pact_helper.rb
|
518
|
+
- test/test_helpers/panopticon_test.rb
|
519
|
+
- test/test_helpers/email_alert_api_test.rb
|
520
|
+
- test/gov_uk_delivery_test.rb
|
521
|
+
- test/imminence_api_test.rb
|
522
|
+
- test/email_alert_api_test.rb
|
523
|
+
- test/response_test.rb
|
524
|
+
- test/rummager_test.rb
|
525
525
|
has_rdoc:
|