gds-api-adapters 49.1.0 → 49.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fd7e95cb6fffdf2c4ad62152dfac55e06bdf5cb9
4
- data.tar.gz: 938c0cbe2f84b5df4b44fceee7aa31efb660a000
3
+ metadata.gz: 004eb0ac42b4214aa361b0f6c67c305a2501f96d
4
+ data.tar.gz: 404379041f33115af011520407c01947a7142f8b
5
5
  SHA512:
6
- metadata.gz: 4471d073f9666568ab8f908d7b7979d7b61e2fb6acbea3e7c6f06287051703712b3fa53cb89399a57214940de5353b2aa83cf956b0f21e4fd968533aaeb36af0
7
- data.tar.gz: bca813b66cdcfdda9d13f89a2c0188ad12d9065d678dffbbb716bfbb0f89b22c439201d858ce62ee7a53121963b2e8178648469555b73c16a8f8d56ea68712c7
6
+ metadata.gz: 38791a6ff09cb11db3237b038cd4a66ed682e8657fa6c9dcd99ab217a92dc817ce2e74c5c4e26904ec574aabfc6549295dea4f4ffde12e892d2eb2bcb3af1f4d
7
+ data.tar.gz: 696ec0fb37e345ef8f779c312a9610fb4c0c9bd4f1f15796b064949429b4847378f57ff6411215aaa24e228a0348669aaa7bbd3f616372d3f9cf819aaebf5424
@@ -47,6 +47,76 @@ class GdsApi::AssetManager < GdsApi::Base
47
47
  post_multipart("#{base_url}/assets", asset: asset)
48
48
  end
49
49
 
50
+ # Creates a Whitehall asset given a hash with +file+ & +legacy_url_path+
51
+ # attributes
52
+ #
53
+ # Makes a +POST+ request to the asset manager api to create a Whitehall asset.
54
+ #
55
+ # The asset must be provided as a +Hash+ with a +file+ attribute that behaves
56
+ # like a +File+ object and a +legacy_url_path+ attribute. The +content-type+
57
+ # that the asset manager will subsequently serve will be based *only* on the
58
+ # file's extension (derived from +#path+). If you supply a +content-type+ via,
59
+ # for example +ActionDispatch::Http::UploadedFile+ or another multipart
60
+ # wrapper, it will be ignored.
61
+ #
62
+ # The +legacy_url_path+ attribute is used to specify the public URL path at
63
+ # which the asset should be served by the Asset Manager. This differs from
64
+ # `#create_asset` where Asset Manager itself determines the public URL path to
65
+ # be used and returns that to the publishing app in the response. This
66
+ # endpoint is intended to be an interim measure which will help us migrate
67
+ # assets from Whitehall into Asset Manager without needing to change the URLs.
68
+ # The end goal is for Asset Manager to determine the public URL path for all
69
+ # assets including Whitehall assets. At that point this endpoint will become
70
+ # redundant and should be removed.
71
+ #
72
+ # There may be restrictions on the format of the `legacy_url_path`. If the
73
+ # supplied path is not valid, a `GdsApi::HTTPUnprocessableEntity` exception
74
+ # will be raised.
75
+ #
76
+ # Note: this endpoint should only be used by the Whitehall Admin app and not
77
+ # by any other publishing apps.
78
+ #
79
+ # @param asset [Hash] The attributes for the asset to send to the api. Must
80
+ # contain +file+, which behaves like a +File+, and +legacy_url_path+, a
81
+ # +String+. All other attributes will be ignored.
82
+ #
83
+ # @return [GdsApi::Response] The wrapped http response from the api. Behaves
84
+ # both as a +Hash+ and an +OpenStruct+, and responds to the following:
85
+ # :id the URL of the asset
86
+ # :name the filename of the asset that will be served
87
+ # :content_type the content_type of the asset
88
+ # :file_url the URL from which the asset will be served when it has
89
+ # passed a virus scan
90
+ # :state One of 'unscanned', 'clean', or 'infected'. Unless the state is
91
+ # 'clean' the asset at the :file_url will redirect to a
92
+ # placeholder
93
+ #
94
+ # @raise [HTTPErrorResponse] if the request returns an error
95
+ #
96
+ # @example Upload a file from disk
97
+ # response = asset_manager.create_asset(
98
+ # file: File.new('image.jpg', 'r'),
99
+ # legacy_url_path: '/government/uploads/path/to/image.jpg'
100
+ # )
101
+ # response['id'] #=> "http://asset-manager.dev.gov.uk/assets/576bbc52759b74196b000012"
102
+ # response['content_type'] #=> "image/jpeg"
103
+ # @example Upload a file from a Rails param, (typically a multipart wrapper)
104
+ # params[:file] #=> #<ActionDispatch::Http::UploadedFile:0x007fc60b43c5c8
105
+ # # @content_type="application/foofle",
106
+ # # @original_filename="cma_case_image.jpg",
107
+ # # @tempfile="spec/support/images/cma_case_image.jpg">
108
+ #
109
+ # # Though we sent a file with a +content_type+ of 'application/foofle',
110
+ # # this was ignored
111
+ # response = asset_manager.create_asset(
112
+ # file: params[:file]
113
+ # legacy_url_path: '/government/uploads/path/to/cma_case_image.jpg'
114
+ # )
115
+ # response['content_type'] #=> "image/jpeg"
116
+ def create_whitehall_asset(asset)
117
+ post_multipart("#{base_url}/whitehall_assets", asset: asset)
118
+ end
119
+
50
120
  # Updates an asset given a hash with one +file+ attribute
51
121
  #
52
122
  # Makes a +PUT+ request to the asset manager api to update an asset.
@@ -1,3 +1,3 @@
1
1
  module GdsApi
2
- VERSION = '49.1.0'.freeze
2
+ VERSION = '49.2.0'.freeze
3
3
  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: 49.1.0
4
+ version: 49.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: 2017-09-22 00:00:00.000000000 Z
11
+ date: 2017-09-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: plek